В последнее время часто встречаю вопросы, которые касаются настройки диалплана в устройствах Linksys. Это связано со сложным форматом данного параметра. Мне даже позвонили из Питера, когда я был ещё в больнице. Совсем недавно был вопрос на форуме, потом написали в ICQ. В общем я решил один раз сделать большую работу, чтобы потом облегчить мучения других и свои тоже. Ниже, как вы могли догадаться последует описание диалплана устройств Linksys и примеры применения.

PS. В дальнейшем количество примеров наверняка будет увеличиваться.

Диалплан отвечает в Linksys за обработку набранного пользователем номера. За основу применяемого формата взят формат описанный в спецификации MGCP/MEGACO. Этот параметр настройки применяется на всей линии устройств, пожалуй кроме SPA400, который, кажется, имеет совершенно иную от остальных основу. Не держал в руках, так что могу ошибаться.

Диалплан представляет из себя последовательность шаблонов, разделённых вертикальной чертой '|' и ограниченных круглыми скобками. Для каждой линии может задаваться свой диалплан (параметр Dial_Plan). Для устройств, где присутствуют FXO порты (например, SPA3102 и AG310), настроек с диалпланами гораздо больше (по 2 на каждый PIN, используемый для авторизации), в названиях есть аббревиатура DP, перечислять не буду. Есть ограничение на длину параметра, что-то около 256 или 128 символов, сейчас не могу найти точную информацию.

Следует заметить, что все коды дополнительных сервисов, сконфигурированных на устройстве, автоматически добавляются к диалплану, и их не нужно учитывать в записи параметра.

Запись последовательности цифр

Основой записи являются обозначения для записи последовательности набранных цифр. Последовательность цифр записывается с помощью нескольких обозначений:

  1. Цифры набираемые с клавиатуры телефона: 0, 1, 2, 3, ..., 9, # и *. Заметьте, что использование символа # в диалплане может блокировать завершение набора с помощью этой клавиши.
  2. Последовательность цифр, заключённая в квадратные скобки, соответствует любому из заключённых в скобки символу.
    • Пр.: ([1239]) — соответствует любой из цифр 1, 2, 3 или 9
  3. Через тире может быть указан диапазон символов. Чаще всего используется внутри квадратных скобок.
    • Пр.: (1-5) — любая цифра от 1 до 5, ([1-39]) — пример из прошлого пункта, но записанный по-другому
  4. Символ X соответствует любому числу от 0 до 9
    • Пр.: (1XX) — любой трёхзначный номер, начинающийся на 1
  5. Если после символа поставлена точка, то считается, что этот символ может быть повторён любое количество раз (больше нуля)
    • Пр.: (810X.) — международный номер, с любым количеством цифр

Настройки, влияющие на обработку диалплана

  • Interdigit Long Timer — время ожидания ввода следующей цифры в том случае если нет подходящих под набранную комбинацию шаблонов
  • Interdigit Short Timer — время ожидания ввода следующей цифры, если есть один или более подходящий шаблон
  • Enable IP Dialing — разрешает использование в диалплане также и прямых ip-адресов для набора номера, примеры ниже.

Дополнительные возможности:

  1. Замена набранной последовательности. Синтаксис: <arg1:arg2>. Возможность позволяет заменить набранную последовательность на любую последовательность набираемых символов. При этом второй аргумент должен быть указан определённым значением, оба аргумента могут быть пустыми.
    • Пр.: (<83812:> XXXXXX) — данная запись будет соответствовать набранным цифрам 83812, но эта последовательность будет опущена и передана на SIP сервер не будет.
  2. Вставка тона в набор. При выходе на межгород или, в офисных станциях, на город привычно слышать КПВ, что можно реализовать вставкой запятой в нужную позицию последовательности цифр.
    • Пр.: (8, 770) — при наборе номера 8770 после цифры 8 будет выдан непрерывный тон
  3. Запрет набора номера. Если в конце шаблона номера добавить восклицательный знак '!', то набор номеров, соответствующих шаблону будет заблокирован.
    • Пр.: (8 10X xxxxxxx ! | 8 xxx xxxxxxx ) — разрешает набор только междугородних номеров и исключает международные вызовы
  4. Замена значений таймеров набора номера. Значения таймеров могут быть назначены как для всего диалплана, так и для определённого шаблона.
  • Буква S отвечает за установку Interdigit Short Timer, а L — Interdigit Long Timer
  • Значение таймеров может быть указано для всех шаблонов в диалплане, если значение перечислены до открывающейся круглой скобки (если указано только значение короткого таймера, то обязательно должна присутствовать запятая после значение, как показано в примере). Пр.: S:4, (8XXX.) или S:4,L:8 (XXX)
  • Если эти значения указаны только в одной из последовательностей, то действуют только для неё. Так же в этом случае не надо ставить двоеточие между ключём и значением таймаута, значение может быть расположено в любом месте шаблона. Пр.: (S4 8XXX. | XXX) или ([1-5] XX S0) — вызовет мгновенную передачу вызова при наборе трехзначного номера, начинающегося на 1,2, ... , 5.
  • Так же в некоторую последовательности может быть вставлена пауза (ключ P)

Набор по прямому адресу (IP Dialing)

Символ @ поставленный после номера означает что далее будет указан адрес сервера, на который будет отправлен вызов на набранный номер. Лучше всего, если используется IP Dialing разрешить так же приём и передачу вызовов без регистрации (Call Without Reg, Answer Without Reg). Может помочь в случае отказа сервера :)

Для шлюзов SPA3102 вместо адреса может быть использовано ключевое слово gw0, тогда вызов пойдёт через PSTN линию. Адреса gw1, ... , gw4 используются для шлюзов заданных в Gateway1-4. Так же для авторизации на серверах прямо в диалплане могут быть указаны параметры usr, pwd, nat.

Кроме того формат адреса с IP Dialing может быть использован в номерах, предназначенных для переадресации звонков.

Примеры:

  • ( 8 xxx xxxxxxx ) — 11-значный номер, начинающийся на 8.
  • ( 8 xxx xxxxxxx | <:8495> xxxxxxx ) — 11-значный номер, начинающийся на 8, если введён 7-ми значный, то добавить к передаваемому номеру 8495. Очень удобно делать набор локальных номеров через SIP провайдера вроде SIPNET.
  • ( 0[123] | 8 [2-9]xx [2-9]xxxxxx ) — набор номеров экстренных служб, а так же некоторого странного набора междугородних номеров
  • ( S0 <:82125551234> ) — быстрый набор указанного номера, аналог режима хотлайн на других шлюзах
  • ( P5 <:1000> | xxxx ) — такой диал-план позволяет набрать любой номер, состоящий из цифр, а если ничего не введено в течении 5 секунд вызвать номер 1000 (пусть это будет секретарь)
  • Звонить с первой линии на вторую линию устройства: (<02:3463463@192.168.254.254:5061>). С учётом что аккаунт на второй линии 3463463, устройство настроено с использованием указанного IP адреса и номером порта на второй линии.

Похожие сообщения:

автор igorg \\ теги: , , , , ,

  • anest

    Спасибо!

  • Cache

    зачет давно надо было написать

  • http://blog.grishin.ru pgrishin

    Еще, вроде, в конце можно писать S0 напрмер: ([1-9]xxS0)

  • http://igorg.ru igorg

    Да, точно, спасибо за напоминание :) Сегодня дополню

  • Андрей

    Спасибо!

    А расскажите еще про Daylight Saving Time Rule. А то у меня часы на DECT'е так и зависли в зимнем времени =)

  • tojime

    Скажите, а можно ли сделать как-то так, чтобы приходящий из PSTN Line звонок сразу перенаправлялся на Астериск, без ожидания донабора?

    У меня SPA-3102.

    Здесь этот же вопрос развернуто:

    asteriskforum.ru/viewtopi...074&start=15

  • Андрей

    Огромное спасибо за статью!

    Очень долго искал и наконец-то нашел. А теперь Вам от меня полезность — недавно работал над исправлением перевода русского интерфейса для телефонов Linksys SPA серии, и вот собственно плод моих стараний, подписанный линксис и без проблем принимаемый моим SPA 962. Есть конечно и в моем варинте корявости по части умещения в софт-кнопки телефона, но в скором времени думаю и это будет доработано =)

    Вот собственно сам файл

    depositfiles.com/files/7196961

  • Sashker

    Игорь, сделайте уточнение, пожалуйста по диалплану в области таймеров. Потому что, такая схема, например S:4 (8XXX.), не работает и в линии выдаются короткие гудки сразу же.

    А вот такая схема, приведенная в офиц. руководстве: S:4, (8XXX.) работает нормально (запятая, после длительности короткого таймера и потом пробел).

  • http://igorg.ru igorg

    Спасибо за комментарий, сделал поправку в тексте статьи и в примере

  • platonische

    Игорь, подскажите почему при переводе звонка шлюз pap2t не передаёт их сразу астеру — приходится ждать пока шлюз схватит набор и отдаст.

  • http://igorg.ru igorg

    А каким образом происходит перевод звонка? С помощью кодов Linksys или через features.conf

  • http://igorg.ru/2008/04/03/linksys_dialplan/#more-73 Вячеслав

    как звонить с первой линии на вторую линию устройства Linksys в локальной сети без регистрации у sip провайдера?

  • matr

    (xxx|[2-79]xxxxxS0|xxxxxxxxxxS0) пример моего дила. внутренние 3-х значные далее достало набирать 9 для выхода в «город» стоит автоподстановка и описание номеров с принудительным # номера в городе 6-ти знаки ну и описал федеральные нумерацию

  • http://igorg.ru igorg

    Не учтена возможность набора международных номеров, плюс привычнее для пользователей после набора восьмерки давать сигнал готовности линии. Коды доп.услуг (*XX) на АТС не используются? И в дополнение не учтен набор экстренных номеров (01, 02 ...)

  • Scriber

    Где найти настройки Дайлплана для спа400?

  • Scriber

    Как звонить с порта на порт без сервера в моделях pap2t?

  • http://igorg.ru igorg

    С порта на порт Linksys можно позвонить используя набор по IP адресу. По SPA400 ничего не скажу, это совершенно другое устройство, ни разу не пользовался

  • Юрий

    У меня на SPA3102 во вкладке «PSTN Line» дефолтом стоит аккаунт

    VOIP-оператора.

    Вопрос: можно ли заставить 3102 звонить, используя именно этот аккаунт из вкладки «PSTN Line» при том, что нигде больше этот аккаунт не прописан?

  • http://igorg.ru igorg

    Если имеется ввиду вызов с FXS порта, то не получится.

  • Юрий

    А тогда для каких целей этот аккаунт используется, если и на него звонить софтфоном тоже не получается?

  • Максим

    Подскажите Игорь, где в настройках Linksys PAP2T найти параметр, который отвечает за набор добавочных номеров при звонке в город?

    нашел параметр «DTMF Tx Method:» выставил значение «InBand», но в этом случае не работает трансфер входящих звонков через #

  • http://igorg.ru igorg

    Он и есть, видимо настройки на астериске и на адаптере не совпадают и нажатые # не воспринимаются. Нужно прописать на астериске так же dtmfmode=inband и кодек обязательно использовать g711

  • Юрий

    Игорь, а какой параметр в SPA3102 отвечает за то, чтоб звонил сам телефон в порту FXS?

    мож кому пригодится: ui.linksys.com/files/SIPU...vanced_Voice.htm — эмулятор SPA3102

  • http://igorg.ru igorg

    PSTN Ring Thru Line 1

  • Александр

    Вопрос по pap2t.

    Возможно ли добиться такого — чтобы с одного телефонного аппарата подключённого к одному FXS порту шлюза, не переключая телефон, попеременно звонить с обеих линий Line1 и Line2 ???

    Если при помощи DialPlana по типу spa3102 (gw0, gw1) добиться этого невозможно — то может быть есть ещё какие нибудь способы?

    Данный вопрос имеет очень большой практический смысл — например: Line1 настроен для дешёвых звонков по городу, а Line2 настроен для дешёвых звонков по межгороду.

    Естественно держать два телефона на столе одновременно или часто переключать один телефон между FXS портами — очень неудобно.

    Решение типа spa942 — удобно, но в два раза дороже pap2t.

  • http://igorg.ru igorg

    Нет. Звонить можно только используя IP адрес (конечно без авторизации, поэтому межгород отпадает)

  • Serega_AAA

    не могу врубиться как сделать аналог длинковского хотлайна

    настраиваю pap2t так чтобы при снятии трубки звонк сразу уходил на удалённую железку.

    по идее вроде как надо прописать (S0<:604@192.168.0.248:5060)

    где 604 это номер порта наудалённой железке

    а 192.168.0.248 это адрем удалённой железки.

    соответсвенно 5060 это порт.

    но при таком диал плане не работста система!!!, даже гудка нету при снятии трубки.

    подскажите где ошибся

  • Serega_AAA

    всё оказалось правильно, просто нехавтало пару галок в настройках pap2t

    на закладке Line

    Make Call Without Reg: Yes

    Ans Call Without Reg: Yes

    Enable IP Dialing: Yes

    и всё заработало.

    ещё раз спасибо за подробное описание DialPlan

  • Scriber

    Скажите, комманды, которые есть в примерах Дайлплана это и всё? Где же скачать полный список комманд?

  • minikk

    Всем доброго времени суток, подскажите как настроить 3102, что он входящий звонок отправлял в голосовое меню (ivr) asterisk'a. Просто не могу сообразить что прописать в строке диалплана и в какой контекст отправлять звонок.

  • DePlot

    Приветствую всех!

    Может кто поможет мне с моим вопросом.

    Суть вопроса такова: настраиваю Linksys spa8000 , на данный момент в офисе всего три телефона, внешние вызовы в город и обратно проходят, а по внутри все отказывается работать, при попытке набрать внутренний номер, все заканчивается короткими гудками.

    С ем может быть связана эта проблема?

    И еще вопрос:на данный момент при звонке на городской номер, телефоны отзываются по очереди, хотелось бы , чтобы звонок приходил только на один телефон(как это делать я знаю...это прописывается в транке) и чтобы дальше человек,отвечающий на звонок перенаправлял вызовы...как такое можно осуществить?

    Заранее благодарю!

  • http://igorg.ru igorg

    Односложно и однозначно ответить на этот вопрос. Советую задать вопрос на одном из форумов, и подробно описать конфигурацию вашей системы

  • DmVtr

    При звонке с asterisk через PSTN-line, linksys выдает один короткий гудок и только потом идут гудки с PSTN, а можно как то избавится от этого начального гудка?

  • Sergey

    подскажите пожалуйста, есть ли у SPA8000, что-то типа хант-груп? как это реализовать? мне нужно 8-канальный номер, т.е. регистрируется 1 раз, а разговаривать может одновр 8 чел и звенел у одного из 8 своб или сразу все 8? нигде не смог найти

  • http://igorg.ru igorg

    Данная функциональность описана в Release Notes к прошивке версии 6.1.3 — www.cisco.com/en/US/docs/...00_RN_v6-1-3.pdf

  • x-kom

    Всем привет.

    Ситуации такая — для звонков за границу используется специальный номер, после дозвона на который вводится пин-код, далее номер зарубежного абонента. Как с помощью диалплана автоматизировать этот процесс?

    Т.е. видится примерно такая реализация: набор на телефоне короткого номера (333) — автоматически осуществляется дозвон до номера провайдера и после установления соединения — набор пинкода (тоже автоматически). Затем ручками на телефоне набираем номер требуемого нам зарубежного абонента.

    Подскажите, возможно ли настроить dialplan Linksys SPA 921 для этого?

    Пробую такой вариант P2, но номер провайдера и пинкод набираются слитно :(

    Куда копать, подскажите, пожалуйста...

  • x-kom

    upd

    такой вариант (P5)

  • Sergey

    спасибо большое, увидел, у меня SPA8800, но прошивка 6.1.7 (GW)

    вроде новее, но этой фичи нету, что попробовать старее прошивку, типа должно сработать?

  • http://igorg.ru igorg

    SPA8000 и SPA8800 по функциональности могут отличаться, возможно в 8800 нет хант-групп

  • Sergey

    а ничего не подскажете по поводу caller ID — именно проброса звонившего (т.е когда звоню на FXO а в FXO набирается FXS то на FXS светится FXOшный номер, а что бы светился номер звонившего? )

  • guest

    Такой дикий вопрос к Вам:

    Нужно сделать быстрый набор на какой-то номер + донабрать внутренний экстеншн подождав, например, 3 секунды. Не подскажете как сделать (аппарат linksys spa501g)? Спасибо.

  • http://igorg.ru igorg

    Никак, диалплан аппарата регламентирует только набор последовательности отправляемой в INVITE. Все что происходит после набора — либо руками, либо средствами PBX

  • guest

    Спасибо Вам

  • Юлия

    Здравствуйте. Скажите, как с телефона SPA921 набирать добавочные номера? Спасибо.

  • http://igorg.ru igorg

    Здравствуйте, берете и набираете

  • Ed

    Здравствуйте! Люди добрые, помогите написать диалплан...

    Суть вопроса: есть АТС, на ней 2 СЛ подключенных к PAP2t, который LANом смотрит на Asterisk (номера на PAP2t «78» и «79»), нумерация на АТС 1хх-5хх. Когда набираю на IP телефоне 78, АТС отвечает, происходит занятие СЛ, а после донабора номера 1хх ничего не происходит...

    Т.е. PAP2t как бы не транслирует DTMF код.

    И еще: возможно ли сделать так, что бы автоматически занимался свободный СЛ?

    Еще раз извините, но у самого ничего не получается...

    Заранее спасибо!

  • http://igorg.ru IgorG

    Проверьте настройки DTMF на PAP2T и Астериске. Проблем прохождения DTMF через Linksys нет. Автоматическое занятие свободно СЛ вы можете сделать средствами Астериска, используя функции GROUP () GROUP_COUNT (). А вообще вопрос не имеет отношения к теме, отвечать больше не буду.

  • Pubuser

    Доброго времени суток друзья! Если не трудно вам, напишите пожалуйста

    настройк фишки HotLine для LinkSys SPA 3102. Предполагается использовать пару

    линксисов как IP удлинитель, из офисной АТС берется 1 номер и подается

    на FXO порт линксиса А, а на удаленном линксис Б ставится простой

    телефон к FXS порту. Само собой, IP соединение между ними установлено.

    Делается это для того чтобы удаленный человек мог звонить на любые

    номера офисной АТС. Но так же и надо, чтобы любой из абонентов АТС, позвонив на этот номер, мог дозвониться до удаленного абонента. Напишите пожалуйста точно, как их настроить, если

    можно со скриншотами, чтобы на линксис Б поднял трубку телефона — и

    сразу произошло подключение к FXO линии шлюза А. Ну или если так

    невозможно — хотя бы через набор какой то цифры, например 9. Как все

    это реализовать через диал план? И соответственно, Как перенаправить  входящий звонок с FXO на удаленный аппарат подключеный к FXS ( Можно прислать настройки

    pubuser@yandex.ru Заранее очень благодарю!)

  • http://igorg.ru IgorG

    Все необходимые примеры приведены в статье, нужно использовать набор по IP адресу и нулевой таймаут (S0). Подобной схемы не настроено, поэтому скриншоты не приведу, да и вряд ли кто-то приведет.

  • Eugene

    Столкнулся с проблемой, я написал диалплан: 

    (S0|[1-79]xxxxxxS0|xxxxxxx.|xxxxxxxxxxS0)

    Если блок для набора 810 стоит ПОСЛЕ блока с «8», то в первую очередь отрабатываеся блок с 8 и дельше 810 игнорируется. 

    В шлюзе есть порядок следования правил от общего к частному (по типу приоритетов слева направо), я так понял, или я с ошибкой составил план?

  • http://igorg.ru IgorG

    Да, тоже сталкивался с этим, не помню чтобы это было описано в мануале Линксиса. Порядок имеет значение.

  • Eugene

    Спасибо!

  • Timoha

     Доброго времени суток!

    Настраиваю SPA8000 (версия прошивки 6.1.3).

    Пробовал настраивать линии отдельно(без объединения в trunk)  — работают хорошо, звонки выполняются согласно диал плану каждой линии. При объединении линий в trunk работают исходящие звонки согласно диал плану транка, входящие распределяются согласно «Contact List». Но иногда возникает необходимость позвонить/переадресовать звонок с одной линии на другу внутри trunk группы.

    Подскажите пожалуйста, есть ли возможность звонить с одной линии на другую внутри trunk группы? Если да, то каким образом?

  • http://igorg.ru IgorG

    С транками, к сожалению, работал мало. Но вообще транк на то и транк, что линии внутри него неразличимы, на мой взгляд это невозможно.

  • Timoha

    Спасибо за оперативный ответ. Если что-то найду,то отпишу здесь, а пока придется делать регистрацию линий на астериске и hunt группу...

  • Deadoff

    Спасибо огромнейшее автору статьи!!! Все очень хорошо расписано! Только вот возник у меня маленький вопрос к ЗНАТОКАМ — иногда почему-то номер набирается неправильно (вариант когда два линксиса хотлайн, так сказать вынос одного номера АТС). Если смотреть детализацию по номеру, то одна из цифр задваивается, случайным образом, хотя номер набирается правильно и не дрожащими руками. АТС Квант-TV трубки DECT панасоник, пробовали и др... Появляется это не часто где-то 1 звонок из 10. Может кто-нить подскажет как победить?

  • http://igorg.ru IgorG

    Нужно смотреть лог линксиса, к которому подключен панасоник. Почти всегда выход в такой ситуации — сменить аппарат. Можно попробовать изменять значения, относящиеся к DTMF на вкладке Regional

  • Deadoff

    Спасибо за оперативный ответ! А как посмотреть ЛОГ?! то что на вкладке ВОЙС — ИНФО?

  • Deadoff

    Вроде бы разобрался с логами, там нашел СИСЛОГ сервер настройку! Спасибо...

  • Кирилл

    Подскажите, пожалуйста. Есть SPA8000, есть VoIP-провайдер, предоставляющий 3 линии. При исходящем звонке все соединяется, звонок проходит. Если параллельно на другом аппарате пытаться позвонить — соединения не происходит — занято.

    Какие настройки нужно сделать, чтобы исходящий вызов перенаправлялся на свободную линию? Или мне надо провайдера трясти?

    Заранее спасибо.

  • http://igorg.ru IgorG

    Мне не понятно по описанию что и как у вас подключено и настроено. Либо, как принято говорить, в платный саппорт, либо вникать в мануал до просветления.

  • Кирилл

     Спасибо, будем вникать :)

  • Pashka67

    Здравствуйте, помогите разобраться с портами SPA8000. Задача примерно та же что и у вас только у меня Addpac 700. Со звонками внутри SPA8000 разобрался, а вот с адпака могу попасть только на первый порт SPA8000, у которого порт 5060. А на других линиях порты другие и соответственно звонок не проходит. Что смотреть?

  • Pashka67

    сорри, не уточнил — у меня SPA8000 и Addpac подключены на прямую без сип сервера. Набор по IP.

    Вызов с адпака проходит только на первую линию ( на адпаке идёт адресация на порт 5060 )

    А на другие линии ( порты 5061, 5160, 5161, 5260 ) не идёт. На адпаке порт поменять не могу.