Jump to content
Калькуляторы

Asterisk передать номер как определить и передать номер

Имеем:

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 by arastegaev

Share this post


Link to post
Share on other sites

вообще говоря раз это городской сип номер, то переменная CALELRID(num) уже должна содержать номер звонящего, если пустая то вы правильно извлекаете его из заголовка

а вообще условия не совсем ясны, можно вместо гото сразу диал использовать

Share this post


Link to post
Share on other sites

как верно ранее отметили, функция(а не переменная) CALLERID(num) возвращает написанное до @ в INVITE поля From. То что вы сделали работать будет, но всё-таки велосипед. voip-info.org вам в помощь.

Share this post


Link to post
Share on other sites

Вообще говоря, это грешно передавать и принимать номер вызывающего абонента в поле From. Для управления отображением номера есть целое RFC 3325

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this