Как позвонить по номеру телефона через транк звездочки из внешнего приложения, разговаривая через пророчество?
Вау, это название было полным ртом...
Я уверен, что на первый взгляд это звучит очень странно. Это основа того, что у меня происходит:
Я имею:
- сервер, на котором установлены Asterisk и Voxeo Prophecy.
-Prophecy настроен как расширение для Asterisk.
- другой сервер, на котором работает внешнее приложение.
Внешнее приложение генерирует два XML-файла: один файл ccxml и один файл vxml для чтения и выполнения Voxeo, после чего инициируется вызов (вплоть до сегодняшнего дня) расширения звездочки.
Тем не менее, проект продвигается вперед, и вчера я получил SIP Trunk и DID номер в надежде превратить это приложение в то, что может вызывать реальных людей.
Магистраль работает на Asterisk, и я смог инициировать звонки через программный телефон (X-lite) на мой номер мобильного телефона. Это работает просто отлично.
Однако, когда я пытаюсь инициировать вызовы из внешнего приложения, оно не проходит. Я пробовал множество вещей, чтобы попытаться это исправить, но это просто не работает.
До начала работы с транком /DID рабочий код для вызова расширения звездочки был следующим:
<createcall>dest="'sip:*Extension here*@*IP Address here*'"
connectionid="myOutBoundConnectionID" timeout="'45s'" callerid="'*Extension here*
@*IP Address here*'"</createcall>
Моей первой мыслью было, что мне может понадобиться указать ствол для Пророчества, а также для Звездочки, но я, вероятно, далеко от базы.
Я думаю, что переформатированный код будет работать следующим образом:
<createcall>dest="'tel:*Phone Number here*'" connectionid=
"myOutBoundConnectionID" timeout="'45s'" callerid="'*Phone Number here*
'"</createcall>
... но это не работает вообще.
Файлы журнала говорят о таких вещах, когда я звоню со своего программного телефона:
-- Executing [*My phone number*@from-internal:1] Macro("SIP/1001-0000007d", "user-
callerid,LIMIT,") in new stack
но когда я звоню из внешнего приложения, все немного по-другому:
-- Executing [*My phone number*@from-sip-external:1] NoOp("SIP/*IP Address:5080-0000007c",
"Received incoming SIP connection from unknown peer to *phone number*") in new stack
Кто-нибудь может пролить свет на то, что здесь происходит? Заранее спасибо!
1 ответ
Вы должны сделать ваш переформатированный вызов create похожим на это:
<createcall>dest="'tel:*Phone Number here*@*IP Address of Asterisk*'" connectionid= "myOutBoundConnectionID" timeout="'45s'" callerid= "'*Prophecy's Asterisk Extension'"</createcall>
Убедитесь, что на вашем сервере Asterisk есть правило для исходящих звонков на 10-значный номер телефона через вашу магистраль SIP (я полагаю, что это происходит, если ваши программные звонки работают.
В зависимости от вашего SIP-провайдера это может привести к тому, что ваши исходящие вызовы будут приходить с добавочного номера, а не с любого внешнего номера, который вы хотите представить. Если вы хотите представить другой номер, вам, вероятно, нужно получить пророчество, чтобы зарегистрировать используемую им SIP-станцию, если вы этого еще не сделали (в Пророчестве config.xml
), на самом деле вам может понадобиться / придется сделать это в любом случае, прежде чем это сработает.