P.S. Или может быть какой-то другой телефон посоветуете, который воспрнимает эти ссылки. Хотя мне X-Lite вполне нравится, надо только с сылками подружить
Ну и не мешает проверить что и без ссылки с него нормально можно сделать звонок.
Для X-Lite
| Код: |
| REGEDIT4 [HKEY_CLASSES_ROOT\sip] @="Session Initiation Protocol" "URL Protocol"="" [HKEY_CLASSES_ROOT\sip\shell] [HKEY_CLASSES_ROOT\sip\shell\open] [HKEY_CLASSES_ROOT\sip\shell\open\command] @=""c:\\Program Files\\X-lite\\X-lite.exe" %1" |
Для X-Pro
| Код: |
| REGEDIT4 [HKEY_CLASSES_ROOT\sip] @="Session Initiation Protocol" "URL Protocol"="" [HKEY_CLASSES_ROOT\sip\shell] [HKEY_CLASSES_ROOT\sip\shell\open] [HKEY_CLASSES_ROOT\sip\shell\open\command] @=""c:\\Program Files\\X-pro\\X-pro.exe" %1" |
После этого телефон звонит по ссылкам вида Абонент 202 . Обратите внимание, двойных слешей в ссылке НЕ НУЖНО.
Appendix B: Dialing Plans
Вот такой код даёт вот такой текст:
| Код: |
| Абонент +79037777777 |
Абонент +79037777777
Но вызывает вот такую команду:
"c:\program files\counterpatch\X-Lite\x-lite.exe" -dial="%2b79037777777"
Естественно asterisk не знает что делать с префиксом %2b. Что подскажете делать?
exten => _%2B7495X.,1,Dial(SIP/sipnet/${EXTEN:3})
Звонок сваливается на контекст s почему-то...
Added after 15 minutes:
http://www.voip-info.org/wiki/view/Asterisk+func+uridecode
Судя по всему этой функцией можно оперировать с данными в строке. А как же быть с контектом - придётся создать промежуточный контекст который переменную ${exten} меняет, а потом отдаёт в основной контекст? Не совсем понимаю.
exten => _%2b.,1,Goto(URIDECODE(${EXTEN}),1)
exten => +7495... и т.д.
Внимательно там с регистром.
И вообще, зачем через плюс звонить? Лишний символ только.
>>И вообще, зачем через плюс звонить? Лишний символ только.
Как зачем. А как отлечить звонок в Россию от звонка в Украину. Многие СМСки без + тоже не отправляются. Думаю что лучше использовать международный формат для набора номера, дабы не было проблем(в .т.ч. с разным написанием сотрудниками номеров контрагентов).
| Код: |
| exten => _+7XXXXXXXXXX,1,Set(EXTEN1=8${EXTEN:2}) ; Режем две первые цифры, подставляем впереди восьмерку и записываем в другую переменную. exten => _+7XXXXXXXXXX,n,Dial(SIP/${EXTEN1}@sip-out,30) exten => _+7XXXXXXXXXX,n,Hangup() |
_________________
Консоль - самая удобная среда. А остальное от лукавого
| Цитата: |
| СМС то-же через Астериск отправляете? |
Взял Х-Lite, набираю в нём sip:+7903xxxxxxxx (так как передаётся из url в IntenetExplorer). Не пойму почему у меня в нужный контекст звонок не идёт:
| Код: |
| exten => _sip:+7X.,1,Goto(office,300,1) exten => _+7X.,1,Goto(office,300,1) exten => s,1,Answer() exten => s,n,Dial(SIP/201) |
Вместе того чтобы попасть на Office,300 звонок сваливается на s . Лог во вложении. Что я не так делаю?
З.Ы. Проблема с _%2b замечена в Chrome. С ним буду позже разибратсья, как разберусь с вышеуказанной пролемой.
Рабочая ссылка выглядит так: sip:номер_телефона@контекст