VoiceCall.php 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. <?php
  2. /**
  3. * Zend Framework
  4. *
  5. * LICENSE
  6. *
  7. * This source file is subject to the new BSD license that is bundled
  8. * with this package in the file LICENSE.txt.
  9. * It is also available through the world-wide-web at this URL:
  10. * http://framework.zend.com/license/new-bsd
  11. * If you did not receive a copy of the license and are unable to
  12. * obtain it through the world-wide-web, please send an email
  13. * to license@zend.com so we can send you a copy immediately.
  14. *
  15. * @category Zend
  16. * @package Zend_Service
  17. * @subpackage DeveloperGarden
  18. * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
  19. * @license http://framework.zend.com/license/new-bsd New BSD License
  20. * @version $Id$
  21. */
  22. /**
  23. * @see Zend_Service_DeveloperGarden_Client_ClientAbstract
  24. */
  25. require_once 'Zend/Service/DeveloperGarden/Client/ClientAbstract.php';
  26. /**
  27. * @see Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall
  28. */
  29. require_once 'Zend/Service/DeveloperGarden/Request/VoiceButler/NewCall.php';
  30. /**
  31. * @see Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced
  32. */
  33. require_once 'Zend/Service/DeveloperGarden/Request/VoiceButler/NewCallSequenced.php';
  34. /**
  35. * @see Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall
  36. */
  37. require_once 'Zend/Service/DeveloperGarden/Request/VoiceButler/TearDownCall.php';
  38. /**
  39. * @see Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus
  40. */
  41. require_once 'Zend/Service/DeveloperGarden/Request/VoiceButler/CallStatus.php';
  42. /**
  43. * @see Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse
  44. */
  45. require_once 'Zend/Service/DeveloperGarden/Response/VoiceButler/NewCallResponse.php';
  46. /**
  47. * @see Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse
  48. */
  49. require_once 'Zend/Service/DeveloperGarden/Response/VoiceButler/NewCallSequencedResponse.php';
  50. /**
  51. * @see Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse
  52. */
  53. require_once 'Zend/Service/DeveloperGarden/Response/VoiceButler/TearDownCallResponse.php';
  54. /**
  55. * @see Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse
  56. */
  57. require_once 'Zend/Service/DeveloperGarden/Response/VoiceButler/CallStatusResponse.php';
  58. /**
  59. * @see Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response
  60. */
  61. require_once 'Zend/Service/DeveloperGarden/Response/VoiceButler/CallStatus2Response.php';
  62. /**
  63. * @category Zend
  64. * @package Zend_Service
  65. * @subpackage DeveloperGarden
  66. * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
  67. * @author Marco Kaiser
  68. * @license http://framework.zend.com/license/new-bsd New BSD License
  69. */
  70. class Zend_Service_DeveloperGarden_VoiceCall
  71. extends Zend_Service_DeveloperGarden_Client_ClientAbstract
  72. {
  73. /**
  74. * wsdl file
  75. *
  76. * @var string
  77. */
  78. protected $_wsdlFile = 'https://gateway.developer.telekom.com/p3gw-mod-odg-voicebutler/services/VoiceButlerService?wsdl';
  79. /**
  80. * wsdl file local
  81. *
  82. * @var string
  83. */
  84. protected $_wsdlFileLocal = 'Wsdl/VoiceButlerService.wsdl';
  85. /**
  86. * Response, Request Classmapping
  87. *
  88. * @var array
  89. *
  90. */
  91. protected $_classMap = array(
  92. 'newCallResponse' => 'Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse',
  93. 'newCallSequencedResponse' => 'Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse',
  94. 'tearDownCallResponse' => 'Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse',
  95. 'callStatusResponse' => 'Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse',
  96. 'callStatus2Response' => 'Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatus2Response'
  97. );
  98. /**
  99. * init a new call with the given params
  100. *
  101. * @param string $aNumber
  102. * @param string $bNumber
  103. * @param integer $expiration
  104. * @param integer $maxDuration
  105. * @param integer $account
  106. * @param boolean $privacyA
  107. * @param boolean $privacyB
  108. * @param string $greeter
  109. * @return Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse
  110. */
  111. public function newCall($aNumber, $bNumber, $expiration, $maxDuration,
  112. $account = null, $privacyA = null, $privacyB = null, $greeter = null
  113. ) {
  114. $request = new Zend_Service_DeveloperGarden_Request_VoiceButler_NewCall(
  115. $this->getEnvironment()
  116. );
  117. $request->setANumber($aNumber)
  118. ->setBNumber($bNumber)
  119. ->setPrivacyA($privacyA)
  120. ->setPrivacyB($privacyB)
  121. ->setExpiration($expiration)
  122. ->setMaxDuration($maxDuration)
  123. ->setGreeter($greeter)
  124. ->setAccount($account);
  125. $result = $this->getSoapClient()->newCall(array(
  126. 'request' => $request
  127. ));
  128. return $result->parse();
  129. }
  130. /**
  131. * init a new call with the given params but specially here,
  132. * you can define a set of numbers to be called if the first number
  133. * isnt reachable (ie: bNumber = +4930-111111,+4930-222222,+4930-333333)
  134. *
  135. * @throws Zend_Service_DeveloperGarden_Client_Exception
  136. * @param string $aNumber
  137. * @param array $bNumber
  138. * @param integer $expiration
  139. * @param integer $maxDuration
  140. * @param integer $maxWait
  141. * @param integer $account
  142. * @param boolean $privacyA
  143. * @param boolean $privacyB
  144. * @param string $greeter
  145. * @return Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse
  146. */
  147. public function newCallSequenced($aNumber, $bNumber, $expiration, $maxDuration,
  148. $maxWait, $account = null, $privacyA = null, $privacyB = null, $greeter = null
  149. ) {
  150. $request = new Zend_Service_DeveloperGarden_Request_VoiceButler_NewCallSequenced(
  151. $this->getEnvironment()
  152. );
  153. $request->setANumber($aNumber)
  154. ->setBNumber($bNumber)
  155. ->setPrivacyA($privacyA)
  156. ->setPrivacyB($privacyB)
  157. ->setExpiration($expiration)
  158. ->setMaxDuration($maxDuration)
  159. ->setMaxWait($maxWait)
  160. ->setGreeter($greeter)
  161. ->setAccount($account);
  162. $result = $this->getSoapClient()->newCallSequenced(array(
  163. 'request' => $request
  164. ));
  165. return $result->parse();
  166. }
  167. /**
  168. * This tear down the call with the given sessionId
  169. *
  170. * @param string $sessionId
  171. * @return Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse
  172. */
  173. public function tearDownCall($sessionId)
  174. {
  175. $request = new Zend_Service_DeveloperGarden_Request_VoiceButler_TearDownCall(
  176. $this->getEnvironment(),
  177. $sessionId
  178. );
  179. $result = $this->getSoapClient()->tearDownCall(array(
  180. 'request' => $request
  181. ));
  182. return $result->parse();
  183. }
  184. /**
  185. * checks the callStatus and updates the keepAlive if provided
  186. *
  187. * @param string $sessionId
  188. * @param integer $keepAlive
  189. * @return Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse
  190. */
  191. public function callStatus($sessionId, $keepAlive = null)
  192. {
  193. $request = new Zend_Service_DeveloperGarden_Request_VoiceButler_CallStatus(
  194. $this->getEnvironment(),
  195. $sessionId,
  196. $keepAlive
  197. );
  198. $result = $this->getSoapClient()->callStatus2(array(
  199. 'request' => $request
  200. ));
  201. return $result->parse();
  202. }
  203. }