Редактирование dialplan на HP iPAQ Voice Messenger 514
Пока Кирилл Морозов разбирался со своим первым UNIX-телефоном, я разбирался со свежекупленным Windows-телефоном iPAQ 514 Voice Messenger. Он заработал «из коробки» и без проблем подключился к нашей PBX на CommuniGate Pro, однако мне не понравился имеющийся по умолчанию dialplan. Dialplan это описание того, куда и в каком виде передаются набираемые телефонные номера.
Дело в том, что в моей записной книжке почти все номера записаны в международно-российском формате и имеют вид +7 (495) 246-24-73. Чтобы их набирать по VoIP, стандартный dialplan (он хранится в скрытом файле \Windows\ipdialplan.xml) надо модифицировать.
Правила набора номеров в Windows Mobile описываются обычными регулярными выражениями. У каждого правила могут быть, помимо pattern, аттрибуты dial (формат набора номера), transfer (формат набора номера при перенаправлении звонка), display (формат отображения номера) и restrict, запрещающий использование этого номера в сотовой сети, IP-сети или для отправки SMS.
Секции IP address rules, SIP URI rules и Only digits можно оставить без изменений, там все хорошо и должно работать с любым VoIP-сервером.
Секции 11-digits rules и 10-digits rules описывают правила набора национальных номеров, по умолчанию — американских. Поэтому их надо заменить на российские (тут они набираются через «восьмерку»):
<!-- 11-digits rules -->
<rule pattern='7\s*-?\s*(\d{3})\s*-?\s*(\d{3})\s*-?\s*(\d{2})\s*-?\s*(\d{2})(\s*[Xx]\s*\d+)?'
dial='sip:8\1\2\3\4@$host$'
display='(\1) \2-\3-\4'
transfer='sip:8\1\2\3\4@$host$'
/>
<rule pattern='7\s*-?\s*\((\d{3})\)\s*-?\s*(\d{3})\s*-?\s*(\d{2})\s*-?\s*(\d{2})(\s*[Xx]\s*\d+)?'
dial='sip:8\1\2\3\4@$host$'
display='(\1) \2-\3-\4'
transfer='sip:8\1\2\3\4@$host$'
/>
<rule pattern='\+\s*7\s*-?\s*(\d{3})\s*-?\s*(\d{3})\s*-?\s*(\d{2})\s*-?\s*(\d{2})(\s*[Xx]\s*\d+)?'
dial='sip:8\1\2\3\4@$host$'
display='(\1) \2-\3-\4'
transfer='sip:8\1\2\3\4@$host$'
/>
<rule pattern='\+\s*7\s*-?\s*\((\d{3})\)\s*-?\s*(\d{3})\s*-?\s*(\d{2})\s*-?\s*(\d{2})(\s*[Xx]\s*\d+)?'
dial='sip:8\1\2\3\4@$host$'
display='(\1) \2-\3-\4'
transfer='sip:8\1\2\3\4@$host$'
/>
<!-- 10-digits rules -->
<rule pattern='(\d{3})\s*(\d{3})\s*-?\s*(\d{2})\s*-?\s*(\d{2})(\s*[Xx]\s*\d+)?'
dial='sip:8\1\2\3\4@$host$'
display='(\1) \2-\3-\4'
transfer='sip:8\1\2\3\4@$host$'
/>
<rule pattern='\((\d{3})\)\s*(\d{3})\s*-?\s*(\d{2})\s*-?\s*(\d{2})(\s*[Xx]\s*\d+)?'
dial='sip:8\1\2\3\4@$host$'
display='(\1) \2-\3-\4'
transfer='sip:8\1\2\3\4@$host$'
/>
Далее следует секция 7-digits rules, это правила набора местных номеров.
<rule pattern='(\d{3})\s*-?\s*(\d{4})'
dial='sip:\1\2@$host$'
display='\1-\2'
transfer='sip:\1\2@$host$'
/>
<rule pattern='(\d{3})\s*-?\s*(\d{2})\s*-?\s*(\d{2})'
dial='sip:\1\2\3@$host$'
display='\1-\2-\3'
transfer='sip:\1\2\3@$host$'
/>
Между правилами SIP URI и Only digits целесообразно добавить правила маршрутизации номеров, которые должны отправляться исключительно в сотовую сеть (например, сервисы оператора и аварийные службы).
<!-- BeeLine Services -->
<rule pattern='(06\d+)'
display='\1'
restrict='VoIP'
/>
Последним правилом я добавил универсальный шаблон, подходящий для любых номеров в международном формате (напр., +44 552435657), к ним добавляется префикс 810.
<!-- Universal Intl. pattern -->
<rule pattern='\+(\d+)\D*(\d*)\D*(\d*)\D*(\d*)\D*(\d*)\D*(\d*)'
dial='sip:810\1\2\3\4\5\6@$host$'
display='+\1 \2\3\4\5\6'
transfer='sip:810\1\2\3\4\5\6@$host$'
/>
На самом деле это могло бы быть единственное изменение, но тогда бы не было красивого отображения российских телефонных номеров (ABC) XXX-XX-XX во время вызова :-)
Загружать dialplan на телефон можно любым способом, описанном в application notes (просто скопировать нельзя), я применил CAB provisioning format. Dialplan помещается в файл _setup.xml, который затем архивируется cabом, копируется на телефон и запускается. CAB-архив создается командой cabarc n dialplan.cab _setup.xml. В результате у меня получился такой файл.
С его установкой возникают непонятные проблемы если присвоить архиву расширение .cpf (как надо), то настройки не вносятся и возникает ошибка с правами доступа. Если сначала назвать его .cab, установить, затем переименовать в .cpf и запустить снова все работает.
0 TrackBacks
Listed below are links to blogs that reference this entry: Редактирование dialplan на HP iPAQ Voice Messenger 514.
TrackBack URL for this entry: http://www.ptitov.ru/mt/mt-tb.cgi/21

Leave a comment