Редактирование dialplan на HP iPAQ Voice Messenger 514

| | Comments (0) | TrackBacks (0)

iPAQ 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

About this Entry

This page contains a single entry by Pavel Titov published on March 6, 2008 8:59 AM.

Почему в России хостинг дорогой, а на Западе -- дешевый was the previous entry in this blog.

Разные типы рабочих дней is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Powered by Movable Type 4.01

Страницы