добавил.Без результата. Такой же инвайт, но с кавычками. INVITE sip:'0002%2379103478334'@198.241.12.215 SIP/2.0
brost ( 2013-03-18 14:32:53 +0400 )редактироватьДобрый день. Есть чистый Asterisk 11.2.1. Нужно к номеру Б добавить префикс 0002#.
exten => _X.,1,NoOP()
same => n,Set(DNIS=0002#${EXTEN})
same => n,Dial(SIP/PROV/${DNIS})
same => n,Hangup()
Но звонок не выходит. Обращался в службу поддержки провайдера. Сказали, что получают от меня номер с другим префиксом, не "0002#". Включил tcpdump и действительно в INVITE Asterisk шлет "0002%23". пробовал отделить обратным слэшем, результат тот же. Подскажите плиз, кто сталкивался с этим?
Update: всем спасибо. вопрос закрыт. Оператору пришлось сменить для меня префикс на 0002, так как другого они сделать не могут.
кавычки поставте "" или ''
добавил.Без результата. Такой же инвайт, но с кавычками. INVITE sip:'0002%2379103478334'@198.241.12.215 SIP/2.0
brost ( 2013-03-18 14:32:53 +0400 )редактироватьThe character "#" is excluded
because it is used to delimit a URI from a fragment identifier in URI
references (Section 4). The percent character "%" is excluded because
it is used for the encoding of escaped characters.
По этому документу такие символы экранируются по маске ""%" HEX HEX" . 23 - номер символа в таблице ANSI.
Спасибо zzuz. Привел оператору выдержку из RFC. После этого ему ничего не осталось как сменить для меня префикс на 0002. Так как на своей стороне он ничего сделать не может.
brost ( 2013-03-19 11:45:34 +0400 )редактироватьУ них небось хуавейчик стоит , который они перепрошить забыли , как большинство)
zzuz ( 2013-03-19 11:54:16 +0400 )редактироватьПопробуйте URIENCODE/URIDECODE
не могли бы вы привести пример, как используя эти функции, заставить Астериск в INVITE слать # заместо %23 ?
brost ( 2013-03-18 16:13:58 +0400 )редактироватьЯ тоже так думаю, потому как эти функции совсем для другого предназначены.
brost ( 2013-03-18 16:17:19 +0400 )редактироватьДело даже не в этом. URI и так экранируется в вашем случае. Изменить это можно только на уровне модуля. но это будет отходить от спецификации , видимо , как у вашего провайдера.
zzuz ( 2013-03-18 16:25:50 +0400 )редактироватьУ меня так получалось послать в сипнет номер в формате "name@skype.sipnet.com", иначе собака превращалась в код %40 Может, и здесь примерно то же самое.
glukinho ( 2013-03-18 17:21:28 +0400 )редактироватьЗадан: 2013-03-18 10:13:15 +0400
Просмотрен: 268 раз
Обновлен: Mar 19 '13
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
zzuz ( 2013-03-18 10:43:01 +0400 )редактироватьNoop(DNIS : ${DNIS})
?там все верно. даже все верно в CDR. а в invite - нет
brost ( 2013-03-18 15:06:09 +0400 )редактировать%23 - и есть символ # . Дуйте обратно к провайдеру.
zzuz ( 2013-03-18 15:50:25 +0400 )редактировать