as_lan Posted January 9, 2015 Report Share Posted January 9, 2015 (edited) Информация о теме: Дело было вечером. Делать было нечего...Пост 1. Про телефонию. так как последние пару дней был занят этим.Наверное многие, кто работает с телефонией Asterisk, знают о существовании опции Call Waiting. Функция конечно хорошая, но не без недостатка. Если абонент, кому звонят, понимает, что на второй линии другой абонент, на которого он в случае чего может переключиться, то звонящий же не узнает, разговаривает сейчас абонент на другом конце или просто не отвечает на звонок. И, казалось бы, хорошая опция этим недостатком может убить все плюсы. По крайней мере в нашем офисе сотрудники часто были недовольны друг другом, думая что на их звонки не отвечают.После многих жалоб (да и самого эта "фича" раздражала) начал искать решение. Нашел его достаточно быстро. Оказалось что я не один, кому не очень понравилась работа это функции.Если коротко, то в /etc/asterisk/extensions_custom.conf надо добавитьinclude => macro-dialout-one-predial-hook [macro-dialout-one-predial-hook] exten => s,1,Noop(DEVICE STATE - ${DEVICE_STATE(${DSTRING})}) exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE"]?Playback(abonent_zanyat)) exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE"]?Set(D_OPTIONS=Ttm)) exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "RINGINUSE"]?Playback(abonent_zanyat)) exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "RINGINUSE"]?Set(D_OPTIONS=Ttm))где abonent_zanyat название проигрываемого файла (кидать в папку со звуковыми файлами). Кстати саму начитку заказывать у сторонних фирм не хотелось (уж больно много просят за пару слов), так что на помощь пришли онлайн синтезаторы речи. В частности этот http://www.oddcast.com/home/demos/tts/tts_example.php. Текст был следующий: "В настоящий момент абонент разговаривает. Вы можете дождаться ответа или перезвонить позже." Сохранить файл можно с помощью инструментов разработки браузера. При выборе голоса Milena получилось очень даже натурально. Был даже удивлен что не сразу и заметно, что это речь синтезатора (особенно если это услышать в трубке телефона).В итоге теперь если мы звоним абоненту, который уже разговаривает, то услышим нашу запись, после чего звонок попадет на удержание. Дальше уже либо дожидаемся ответа, либо кладем трубку. Все прям как у мобильных операторов. Сотрудники довольны =). Edited March 9, 2015 by as_lan Quote Link to comment Share on other sites More sharing options...
Guest SilentNess Posted August 31, 2015 Report Share Posted August 31, 2015 а если подробнее?? не понятно в какой контекст инклюдится данный макрос, и как он вызывается диалпланом? Quote Link to comment Share on other sites More sharing options...
as_lan Posted August 31, 2015 Author Report Share Posted August 31, 2015 ,Я это делал на предыдущей работе. Там была связка Asterisk+Freepbx. В ручную я только в этот конфиг добавил. Остальное не трогал. extensions_custom.conf инклюдится в extensions_aditional.conf кажется. Кстати. Там есть косяк. Перестает работать приветствие для оператора. Поэтому если включено приветствие для оператора (не для абонента), то оно отвалится. Причину найти так и не успел, так как время для тестирования было очень ограниченным. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.