вторник, 21 сентября 2010 г.

Реализация услуги CLIR в протоколе SIP

Добрый день.
Наконец смог добавить сообщение.
Было очень много работы, причем частично дурной ... но живем.
Сегодня мы поговорим о том, как в протоколе SIP реализуется услуга CLIR.
Услуга CLIR (Calling line identification rebound) - запрет определения номера вызываемого абонента (А номер) позволяет абонентам совершать вызовы, не открывая при этом вызываемому абонента своего номера.
Теперь посмотрим как это работает в SIP.
Обычно протокол SIP оперирует А номером из заголовков From и Contact.
Для примера рассмотрим обычный INVITE:

INVITE sip:XXX56374XXXX@XX.XX.2.18:2000;user=phone SIP/2.0
From: "XXX56375XXXX" ;tag=1412239
To: ;tag=9300128943591984131
Call-ID: 5C116F62-06E4-4501-B226-5BA0EF83EDD7
CSeq: 1 INVITE
Privacy: none
P-Asserted-Identity: tel:XXX56375XXXX
Max-Forwards: 69
P-Charging-Vector: icid-value=F593133B-AA95-4005-83A8-59CADB73407A
User-Agent: vocl-essentra-ex/8.1 (19070.34)
Via: SIP/2.0/UDP XX.XX.252.7:5060;received=XX.XX.252.7;branch=z9hG4bK-536856b0-4c9883a7;vtservice=b2buaservlet.siptosip
Contact:
Allow: INVITE,ACK,CANCEL,BYE,OPTIONS,INFO,PRACK

А теперь включим на нашем SSw (реализация достаточно однотипна, обычно называется примерно Caller ID Blocking) соот. услугу и посмотрим на INVITE:

INVITE sip:XXX56374XXXX@XX.XX.2.18:2000 SIP/2.0
From: "Anonymous" ;tag=1411481
To: ;tag=9300128943591983723
Call-ID: 52588159-9C78-4F42-A67D-D5E4E284BAE7
CSeq: 1 INVITE
Privacy: id
P-Asserted-Identity: tel:XXX56375XXXX
Max-Forwards: 69
P-Charging-Vector: icid-value=77C422A6-6D56-4DBD-AAB5-410F7AA4EEAE
User-Agent: vocl-essentra-ex/8.1 (19070.34)
Via: SIP/2.0/UDP XX.XX.252.7:5060;received=XX.XX.252.7;branch=z9hG4bK-58251148-4c9881ab;vtservice=b2buaservlet.siptosip
Contact:
Allow: INVITE,ACK,CANCEL,BYE,OPTIONS,INFO,PRACK

Видите разницу ?
Во втором случае SSw "замаскировал" поля From и Contact.
Но при этом А номер сохранился в хитром поле P-Asserted-Identity.
Тем самым мы и маршрутизировать трафик можем по А номеру, и учет вести и при этом А номер сокрыт.