Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Какой Windows SIP софтфон может реализовать автоматический донабор номера DTMF?

1

Собственно вопрос в теме.

На астериске заведен транк sipnet.ru. Что нужно: при звонке с Windows ПК через sipnet на астериск, попадаем на DISA, нужно донабрать соответствующий внутренний номер абонента. софтфон -> sipnet -> Asterisk DISA (донабор) -> внутрейнний номер. Внутренний номер каждый раз нужно набирать вручную, что доставляет неудобства. В тех же мобильных и DECT телефонах это решается просто - добавлением символа паузы после основного номера. По идее и в софтфоне надо знать символ которые даст паузу, а после соединения автоматически донаберет нужный нам номер, что-то вроде: 00555555p1001. Но в софтфонах (пробовал родной от sipnet и 3CX) нет поддержки стандартных символов для создания паузы, таких как "p" или "w" или "," или "." И при наборе 00555555p1001 весь номер идет в sipnet, в результате ошибка вызова. Вопрос, какая из программ поддерживает автоматический донабор и какие символы нужны для создания паузы?

удалить закрыть спам изменить тег редактировать

спросил 2011-07-25 06:24:52 +0400

belka2012 Gravatar belka2012
47 2 1 6

обновил 2011-07-25 08:50:59 +0400

2 Ответа

2

Как вариант могу предложить альтернативу опция D у команды Dial на астериске
D(digits): After the called party answers, send digits as a DTMF stream, then connect the call to the originating channel (you can also use 'w' to produce .5 second pauses).
И как можете заметить в описании тут как раз можно использовать символ w. В итоге всё это будет работать в не зависимости от софтфона (это всё теоритически конечно ну и плюс если у вас какая нить коробочка типа freepbx то что бы внести такие изменения нужен опыт)

ссылка удалить спам редактировать

ответил 2011-07-25 10:21:39 +0400

kasper Gravatar kasper
305 3 10

обновил 2011-07-25 10:25:47 +0400

Comments

По ману, символ w используется для 5 секундной задержки, а D не просто параметр, а функция, т.к. в качестве параметра принимает донабираемый номер. Пример: _X., 1, Dial(SIP/prov/1219212,,D(121)). Тут мне не нравится только _X., думаю это можно как-то обойти. + попробовал добавить w, астериск его не воспринимает.. кто нибудь может привести пример? Также в соответствие с мануалом "You can also provide digits after a colon - all digits before the colon are sent to the called channel, all digits after the colon are sent to the calling channel (all digits are sent to the called channel if there is no colon present). " - пробовал не вышло. champion ( 2011-07-25 12:01:52 +0400 )редактировать
Прокомментирую в свою очередь ваш комментарий. Во первых не 5 а '.5' наверное имелось ввиду пол секунды, (секундомера нет но или 1 или 0.5 сек). Во вторых то что D это функция не согласен, просто такое оформление и по официальной документации это называется options. Ваш пример работает на 1.6.2 , но на 1.8.4.4 действительно не прокатило оО (asterisk style). <br> З.Ы. Как работает эта карма, то повышается то понижается, хоть писалось бы какое действие привело к изменениям, и куда делась моя единичка у вопроса? Мистика какая то =) kasper ( 2011-07-25 12:53:33 +0400 )редактировать
хм.. и вправду, у меня 1.6 =) На 1.8 буду тестить позже, сейчас нет под рукой. Т.е. на 1.8 прокатит Dial(SIP/prov/1912121w9812,,D)? champion ( 2011-07-25 13:09:57 +0400 )редактировать
наоборот, у меня на 1.8 не прокатило опция D() (может конечно частный случай я с ним что только не делал, свои патчи накладывал, а то разработчики никак не хотят баги исправлять). Ваш новый примерчик сейчас нет возможности протестить kasper ( 2011-07-25 13:13:25 +0400 )редактировать
Всё таки добрался до asterisk 1.8.5.0.. работает только Dial(SIP/prov/8121212,,D(121)), никак по другому. А как вы делаете набор? Куда опцию w "пихаете"? champion ( 2011-07-25 13:31:27 +0400 )редактировать
Для правильности тестов взял ваш же пример _X., 1, Dial(SIP/prov/1219212,,D(121)) w добавил сюда D(12w1). Это всё было описано в моём ответе, вы невнимательно прочитали. Что касается Dial(SIP/prov/1912121w9812), то опять таки теоритически это может работать в зависимости от канала. Судя по описанию команды Dial, identifier зависит от канала и если посмотреть на dahdi каналы то там (Within the phone number, you may use the special modifier w to indicate a half-second pause), про sip ничего такого не нашёл kasper ( 2011-07-25 13:41:00 +0400 )редактировать
Подытожу. Чтобы звонить на добавочный, нужно набирать с параметром D, где в аргументах указать номер добавочного. Вставка w означает небольшую задержку. Т.е. "нативно", прямо таки набирая номер с каким то параметром из софтфона не прибегая к функциям работы со строками и agi данную проблему решить не удастся. ЗЫ Символ w в аргументах D не проверял. Только в поле identifier, там оно не работает. Проверял на 1.6 и 1.8. champion ( 2011-07-25 14:41:48 +0400 )редактировать
Подкорректирую итог =) У автора с его sipnet неполучится без преобразования номера. А на dahdi это работает. Проверил на практике, у меня поток е1 дижиум плата. Dial(DAHDI/g0/89291111111w1) дозвонилось и после того как поднял трубку передало дтмф 1. kasper ( 2011-07-25 16:53:27 +0400 )редактировать
1

Долго копавшись нашел. Оказывается такая функция есть у x-lite 4 версии.

https://support.counterpath.com/default.asp?W366">How do I add a pause in a dialed number so I can access an extension?

This feature is supported in Bria 3 and X-Lite 4.If you know that your call will be answered by an auto attendant and you know what menu items you will choose, you can include those menu items in the phone number when you dial it. You can also include pauses to allow the other side to answer the phone or respond.

You can do this to dial an extension, or log into a voicemail or conference server, or select from any menu.

Key the number in the call field. Then type a capital X or P to denote a .5 second pause and then the extension (for example). End the string with a ";" semicolon (required at the end to tell Bria/X-Lite to process the pauses and turn digits into DTMF sounds).

Example 1: The number dialed is 1234567890, and when an automated answer machine asks for the extension, 1234 is dialed. Enter the following in the call field:

1234567890XXX1234;

When the call button is pressed, the softphone will dial the number (1234567890) then pause for 1.5 seconds, then send DTMF for extension 1234. описание изображения

Example 2: To walk your way through a menu, enter:

6045551212PPPPPP1PP3PP2;

This example dials the number then waits 6 seconds, hits 1, waits 2 seconds, hits 3, waits 2 seconds, and finally hits 2.

В двух словах: пауза в 0.5 сек. реализуется вставкой большой латинской буквы P или Х. Для реализации более длинных пауз символы ставятся подряд. Строчка обязательно должна заканчиваться символом ";" (без кавычек). Это над для того, чтоб программа восприняла буквы именно как символы паузы, а не как часть набираемого номера.

По поводу опции D у команды Dial, у меня все настройки произведена из FreePBX и чтоб грамотно вставить в конфиги эту поцию и ничего не поломать надо очень постараться.

ссылка удалить спам редактировать

ответил 2011-07-26 14:14:10 +0400

belka2012 Gravatar belka2012
47 2 1 6

обновил 2011-07-26 14:22:07 +0400

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2011-07-25 06:24:52 +0400

Просмотрен: 1,771 раз

Обновлен: Jul 26 '11

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.