Есть вот такой экстеншен:
| Код: |
| exten => test,1,Answer() exten => test,n,playback(3) exten => test,n,Festival(Тестовая фраза!) ...тут меню голосовое вставим и обработаем ввод клиента. exten => test,n,Hangup() |
Вот кусок кода на php:
| Код: |
| ..... $oSocket = fsockopen ("localhost", 5038, $errno, $errstr, 20); if (!$oSocket) { echo "$errstr ($errno) \n"; } else { fputs($oSocket, "Action: login\r\n"); fputs($oSocket, "Events: off\r\n"); fputs($oSocket, "Username: $strUser\r\n"); fputs($oSocket, "Secret: $strSecret\r\n\r\n"); fputs($oSocket, "Action: originate\r\n"); fputs($oSocket, "Channel: SIP/gsm1/$number\r\n"); fputs($oSocket, "WaitTime: $strWaitTime\r\n"); fputs($oSocket, "CallerId: $strCallerId\r\n"); fputs($oSocket, "Exten: test\r\n"); fputs($oSocket, "Context: $strContext\r\n"); fputs($oSocket, "Priority: $strPriority\r\n\r\n"); fputs($oSocket, "Action: Logoff\r\n\r\n"); sleep(2); fclose($oSocket); } ... |
Тестово все хорошо вызывается из браузера и работает, оповещает клиента. Но есть проблемы которые надо решить до реальной эксплуатации: 1) один канал может быть использовать только для одного вызова одновременно. В коде сейчас сам канал зашит жестко. Т.е. больше одного одновременного звонка из кода сделать не можем. 2) Звонок может происходить на городской номер и на мобильный. По экономическим соображениям выгодней делать это по разным каналам.
В обычных исходящих вызовах обе проблемы решены макросом. В макрос передаётся номер, и он сам определяет какой канал свободный и как звонить дешевле. Здесь же имеем проблему: работа диалплана(из которого мы можем макрос вызвать) начнется, когда вызываемый абонент поднимет трубку. А для этого надо сразу указать канал через который звоним.
Вопрос: Как можно совершить такой вызов используя мой макрос уже написанный. Чтобы через него делалось соединение с нужным номером телефона и в дальнейшем управление передавалось в заданную часть диалплана?
_________________
Intel Core 2 Duo E6400 @ 2.40GHz / 6Gb / 160Gb || Gentoo Linux || Asterisk 1.8.12
Решения телефонии на базе Asterisk || http://it-need.ru