arastegaev Posted February 27, 2013 (edited) Имеем: 1. Городской SIP номер 2. Asterisk с IVR 3. Внутренний номер Идет вызов на городской номер -> приветствие+меню -> переадресация на внутренний На внутреннем номере вижу входящий с Asterisk, а хочу видеть номер звонящего (на стороне прова номер передается) Делаю: exten => 319091,1,Set(NUM_IN=${SIP_HEADER(From)}) exten => 319091,2,Set(NUM_IN=${CUT(NUM_IN,@,1)}) exten => 319091,3,Set(NUM_IN=${CUT(NUM_IN,:,2)}) exten => 319091,4,Set(CALLERID(all)=${NUM_IN}) exten => 319091,n,Answer() exten => 319091,n,Background(turbasa/priv_saklay_katay) exten => 319091,n,WaitExten(7) exten => 319091,n,Goto(turbasa,501,1) В итоге вижу номер звонящего. Правильно ли делаю, или может есть более интересное (правильное) решение? Edited February 27, 2013 by arastegaev Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
VasiliyP Posted March 2, 2013 вообще говоря раз это городской сип номер, то переменная CALELRID(num) уже должна содержать номер звонящего, если пустая то вы правильно извлекаете его из заголовка а вообще условия не совсем ясны, можно вместо гото сразу диал использовать Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
^rage^ Posted March 3, 2013 как верно ранее отметили, функция(а не переменная) CALLERID(num) возвращает написанное до @ в INVITE поля From. То что вы сделали работать будет, но всё-таки велосипед. voip-info.org вам в помощь. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Aleck_K Posted March 6, 2013 Вообще говоря, это грешно передавать и принимать номер вызывающего абонента в поле From. Для управления отображением номера есть целое RFC 3325 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...