Хитрощі SIP

Якщо про­вай­дер на IP-АТС заве­де­ний як зви­чай­ний юзер через register, а номе­рів на ньо­му висить кіль­ка, то роз­рі­зня­ти, на який же саме номер зате­ле­фо­ну­ва­ли, не так про­сто. При­найм­ні, мені так зда­ло­ся. Однак зна­йшло­ся ріше­н­ня, і воно поля­гає в пря­мо­му роз­би­ран­ні заго­лов­ків SIP.

Ось витяг із діал­пла­на:

exten => _201,1,Set(dnum=${CUT(CUT(SIP_HEADER(TO),@,1),:,2)})
same => n,GotoIf($["${dnum}" = "0441000001"]?first)
same => n,GotoIf($["${dnum}" = "0441000002"]?second)
same => n,Goto(forbid)
same => n(first),Macro(greetingfirst)
same => n,Goto(forbid)
same => n(second),Macro(greetingsecond)
same => n,Goto(forbid)
same => n(forbid),Hangup()

Най­го­лов­ні­ший тут рядок — пер­ший. Якраз у ньо­му дво­ма фун­кці­я­ми CUT із заго­лов­ка SIP вирі­за­є­ться номер. Тан­ці з Goto виклю­чно для зру­чно­сті, можна, зві­сно, тро­хи іна­кше.

Може, можна якось і про­сті­ше, але поки при­ду­мав тіль­ки так.

Мітки: , , ,

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

*

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.