Честно говоря, я планировал связать два астрериска уже после того, как полностью заработает один. Но суровая реальность расставила все по своим местам.
Несколько лет назад, я работал в компании Rittal. Одним из проектов, которыми я занимался, было внедрение Астериска.
Тема была для меня новая, и чтобы помочь себе и, возможно, кому-то еще, я завел у себя на сайте раздел, посвященный этому процессу.
Из Риттала я ушел, раздел забросил, но сам Астериск не перестает меня восхищать. Кроме того, как ни странно, иногда люди находят в бездне интернета, что-то спрашивают, делятся мнениями и тд. Спасибо вам, это очень приятно!
Я постараюсь в ближайшее время выложить пару-тройку новых статей, посвященных Астериску. А может и попробую возродить весь раздел...
Честно говоря, я планировал связать два астрериска уже после того, как полностью заработает один. Но суровая реальность расставила все по своим местам.
Если вы читаете этот цикл статей с начала, то вы помните мои метания по поводу сигнала занято (вы можете посмотреть здесь и здесь).
После переписки с разработчиками, чтения мануалов и тд, стал понятен третий, финальный и правильный путь. Переходим к делу.
Во-первых, удаляем столбец call-limit из tbl_sip_conf - он больше не понадобится.
Во-вторых, добавляем два столбца в ту же таблицу
busylevel будет определять, при каком количестве звонков телефон переходит в статус занято, а callcounter разрешает такой подсчет.
После перезапуска sip очереди уже будут контролироваться автоматически, не допуская появления новых звонков в процессе разговора.
Теперь дополнительный отбой при наборе.
Перед набором SIP номера (у меня это macro-dial_sip_number) добавляем
А в контексты набора номера с телефонов добавляем
Все!
В качестве телефона оператора колл-центра, мы выбрали телефон Grandstream GXP-2020. К нему подключаются дополнительные блоки кнопок и он умеет показывать статус линии (занята/свободна). Именно этим статусом и займемся.
Сначала добавим в таблицу tbl_sip_conf два столбца:
Первый позволит уведомлять телефон колл-центра не только о разговаривающих абонентах, но и об абонентах, которым звонят. Второй предназначен для задания контекста, в который будет направляться телефон при подписке.
Из-за того, что указание в диалплане метки hint(а именно она нам и нужна) нельзя использовать шаблоны, придется немного схитрить.
В основной контекст я добавил следующие строки (они включают внешний файл /etc/asterisk/rittal/hints.conf):
Для формирования этого файла из базы я использовал скрипт
Этот скрипт создает файл вида
Теперь осталось в настройках телефона прописать на кнопку мониторинг.
Рассмотрим организацию очередей звонков на примере ответа секретаря.
Важная статья, посвященная внесению SIP-аккаунтов не через файл sip.conf (как описано в этой статье), а через таблицу БД, и дальнейшему их администрированию.
Настало время подключить телефоны к астериск по протоколу SIP и сделать «звонок другу» :)