Рейтинг
0.00
avatar

Asterisk

Подробнее ↓

Asterisk GUI

Asterisk
Начал писать свой веб-интерфейс для asterisk, на php + js + html + ajax
Проект opensource. Пока еще на начальной стадии, но уже кое что умеет.
Из того, чего не видел у других — отображение очередей с статусами агентов и с кем они разговаривают (с привязкой к очереди), видно не отвеченные вызовы и нагрузку на очереди. Да, похожее есть в FOP2, но во-первых платно, во-вторых не совсем так.

Ссылка на github.com

Прошу попинать и высказать фидбек или хотелки, может по разработке подскажете что полезное.

Скриншот

Как добавить в очередь внешнего абонента

Asterisk
Нашел на форумах, возможно пригодится:

Вы можете добавить в очередь любой канал, в том числе внешний номер:

member => Local/12345@default

Где [default] наш контекст.

И так же можно использовать такую конструкцию:
member => SIP/12345@yourprovider

Команды AMI

Asterisk
Список команд AMI asterisk версии 11, вывод команды manager show commands
AbsoluteTimeout: Set absolute timeout.  (Priv: system,call,all)
AgentLogoff: Sets an agent as no longer logged in.  (Priv: agent,all)
Agents: Lists agents and their status.  (Priv: agent,all)
Atxfer: Attended transfer.  (Priv: call,all)
Bridge: Bridge two channels already in the PBX.  (Priv: call,all)
Challenge: Generate Challenge for MD5 Auth.  (Priv: <none>)
ChangeMonitor: Change monitoring filename of a channel.  (Priv: call,all)
Command: Execute Asterisk CLI Command.  (Priv: command,all)
ConfbridgeKick: Kick a Confbridge user.  (Priv: call,all)
ConfbridgeList: List participants in a conference.  (Priv: reporting,all)
ConfbridgeListRooms: List active conferences.  (Priv: reporting,all)
ConfbridgeLock: Lock a Confbridge conference.  (Priv: call,all)
ConfbridgeMute: Mute a Confbridge user.  (Priv: call,all)
ConfbridgeSetSingleVideoSrc: Set a conference user as the single video source distributed to all other participants.  (Priv: call,all)
ConfbridgeStartRecord: Start recording a Confbridge conference.  (Priv: system,all)
ConfbridgeStopRecord: Stop recording a Confbridge conference.  (Priv: call,all)
ConfbridgeUnlock: Unlock a Confbridge conference.  (Priv: call,all)
ConfbridgeUnmute: Unmute a Confbridge user.  (Priv: call,all)
CoreSettings: Show PBX core settings (version etc).  (Priv: system,reporting,all)
CoreShowChannels: List currently active channels.  (Priv: system,reporting,all)
CoreStatus: Show PBX core status variables.  (Priv: system,reporting,all)
CreateConfig: Creates an empty file in the configuration directory.  (Priv: config,all)
DAHDIDialOffhook: Dial over DAHDI channel while offhook.  (Priv: <none>)
DAHDIDNDoff: Toggle DAHDI channel Do Not Disturb status OFF.  (Priv: <none>)
DAHDIDNDon: Toggle DAHDI channel Do Not Disturb status ON.  (Priv: <none>)
DAHDIHangup: Hangup DAHDI Channel.  (Priv: <none>)
DAHDIRestart: Fully Restart DAHDI channels (terminates calls).  (Priv: <none>)
DAHDIShowChannels: Show status of DAHDI channels.  (Priv: <none>)
DAHDITransfer: Transfer DAHDI Channel.  (Priv: <none>)
DataGet: Retrieve the data api tree.  (Priv: <none>)
DBDel: Delete DB entry.  (Priv: system,all)
DBDelTree: Delete DB Tree.  (Priv: system,all)
DBGet: Get DB Entry.  (Priv: system,reporting,all)
DBPut: Put DB entry.  (Priv: system,all)
Events: Control Event Flow.  (Priv: <none>)
ExtensionState: Check Extension Status.  (Priv: call,reporting,all)
Filter: Dynamically add filters for the current manager session.  (Priv: system,all)
GetConfig: Retrieve configuration.  (Priv: system,config,all)
GetConfigJSON: Retrieve configuration (JSON format).  (Priv: system,config,all)
Getvar: Gets a channel variable or function value.  (Priv: call,reporting,all)
Hangup: Hangup channel.  (Priv: system,call,all)
IAXnetstats: Show IAX Netstats.  (Priv: system,reporting,all)
IAXpeerlist: List IAX Peers.  (Priv: system,reporting,all)
IAXpeers: List IAX peers.  (Priv: system,reporting,all)
IAXregistry: Show IAX registrations.  (Priv: system,reporting,all)
ListCategories: List categories in configuration file.  (Priv: config,all)
ListCommands: List available manager commands.  (Priv: <none>)
LocalOptimizeAway: Optimize away a local channel when possible.  (Priv: system,call,all)
Login: Login Manager.  (Priv: <none>)
Logoff: Logoff Manager.  (Priv: <none>)
MailboxCount: Check Mailbox Message Count.  (Priv: call,reporting,all)
MailboxStatus: Check mailbox.  (Priv: call,reporting,all)
MixMonitor: Record a call and mix the audio during the recording.  Use of StopMixMonitor is required to guarantee the audio file is available for processing during dialplan execution.  (Priv: system,all)
MixMonitorMute: Mute / unMute a Mixmonitor recording.  (Priv: system,call,all)
ModuleCheck: Check if module is loaded.  (Priv: system,all)
ModuleLoad: Module management.  (Priv: system,all)
Monitor: Monitor a channel.  (Priv: call,all)
MuteAudio: Mute an audio stream.  (Priv: system,all)
Originate: Originate a call.  (Priv: originate,all)
Park: Park a channel.  (Priv: call,all)
ParkedCalls: List parked calls.  (Priv: <none>)
Parkinglots: Get a list of parking lots  (Priv: <none>)
PauseMonitor: Pause monitoring of a channel.  (Priv: call,all)
Ping: Keepalive command.  (Priv: <none>)
PlayDTMF: Play DTMF signal on a specific channel.  (Priv: call,all)
PresenceState: Check Presence State  (Priv: call,reporting,all)
QueueAdd: Add interface to queue.  (Priv: agent,all)
QueueLog: Adds custom entry in queue_log.  (Priv: agent,all)
QueueMemberRingInUse: Set the ringinuse value for a queue member.  (Priv: agent,all)
QueuePause: Makes a queue member temporarily unavailable.  (Priv: agent,all)
QueuePenalty: Set the penalty for a queue member.  (Priv: agent,all)
QueueReload: Reload a queue, queues, or any sub-section of a queue or queues.  (Priv: <none>)
QueueRemove: Remove interface from queue.  (Priv: agent,all)
QueueReset: Reset queue statistics.  (Priv: <none>)
QueueRule: Queue Rules.  (Priv: <none>)
Queues: Queues.  (Priv: <none>)
QueueStatus: Show queue status.  (Priv: <none>)
QueueSummary: Show queue summary.  (Priv: <none>)
Redirect: Redirect (transfer) a call.  (Priv: call,all)
Reload: Send a reload event.  (Priv: system,config,all)
SendText: Send text message to channel.  (Priv: call,all)
Setvar: Sets a channel variable or function value.  (Priv: call,all)
ShowDialPlan: Show dialplan contexts and extensions  (Priv: config,reporting,all)
SIPnotify: Send a SIP notify.  (Priv: system,all)
SIPpeers: List SIP peers (text format).  (Priv: system,reporting,all)
SIPpeerstatus: Show the status of one or all of the sip peers.  (Priv: system,all)
SIPqualifypeer: Qualify SIP peers.  (Priv: system,reporting,all)
SIPshowpeer: show SIP peer (text format).  (Priv: system,reporting,all)
SIPshowregistry: Show SIP registrations (text format).  (Priv: system,reporting,all)
Status: List channel status.  (Priv: system,call,reporting,all)
StopMixMonitor: Stop recording a call through MixMonitor, and free the recording's file handle.  (Priv: system,call,all)
StopMonitor: Stop monitoring a channel.  (Priv: call,all)
UnpauseMonitor: Unpause monitoring of a channel.  (Priv: call,all)
UpdateConfig: Update basic configuration.  (Priv: config,all)
UserEvent: Send an arbitrary event.  (Priv: user,all)
VoicemailUsersList: List All Voicemail User Information.  (Priv: call,reporting,all)
WaitEvent: Wait for an event to occur.  (Priv: <none>)

Команды CLI Asterisk

Asterisk
В этой статье мы расскажем как пользоваться Asterisk CLI (Command Line Interface), или проще говоря командной строкой Asterisk. CLI необходима для дебага ошибок и управления самим Asterisk.

1) Для входа в Asterisk CLI необходимо ввести следующие команды:
# rasterisk

или
# asterisk -rvvvvv

Ключ -rvvvvv отвечает за уровень отображения дебага.

Для выполнения команд из консоли Linux можно воспользоваться следующим синтексом:
asterisk -rx "sip show peers"

В кавычках вы указываете какую команду хотите применить.

Для выхода из консоли необходимо ввести «quit» или «exit».

Приведем список существующих команд Asterisk CLI:

logger show channels - выводит список лог файлов
logger set level {DEBUG|NOTICE|WARNING|ERROR|VERBOSE|DTMF} {on|off} - включение/отключение определенного уровня логирования
logger rotate - ротация и новое открытие файлов логирования
logger remove channel - удаляет канал из логирования
logger reload - перезагружает логирование
logger mute - установка паузы на вывод информации в CLI Asterisk (т.е. в консоль не будет сыпаться никакая информация). Отключается это повторным вводом команды.
logger add channel - добавление нового канала для логирования
local show channels - выводит список локальных каналов АТС (внутренние вызовы)
keys show - выводит список ключей RSA
keys init - установка пароля для ключа RSA
indication show - выводит список индикаторов и стран
indication remove - удаление индикатора страны
indication add - установка индикатора для страны
iax2 unregister - снять регистрацию (принудительно) с IAX2 пира
iax2 test losspct - устанавливает % потерянных пакетов для тестирования работоспособности IAX2
iax2 show users [like] - выводит список пользователей IAX
iax2 show threads - выводит список вспомогательных потоков IAX
iax2 show stats - выводит статистику IAX пиров
iax2 show registry - выводит статус регистраций IAX пиров
iax2 show provisioning - выводит список шаблонов IAX для автонастройки
iax2 show peers - выводит информацию об IAX пирах
iax2 show peer - выводит информацию о IAX пире
iax2 show netstats - выводит сетевую статистику о IAX каналах
iax2 show firmware - выводит список доступных прошивок под IAX пользователей
iax2 show channels - выводит активные каналы IAX
iax2 show callnumber usage - выводит текущие записи в таблице IP
iax2 show cache - выводит кэш диалплана IAX
iax2 set mtu - устанавливает размер MTU IAX сообщений
iax2 set debug trunk {on|off} - включение/отключение дебага IAX каналов
iax2 set debug jb {on|off} - включение/отключение дебага джиттер-буфера IAX
iax2 set debug {on|off|peer} - включение/отключение дебага IAX
iax2 reload - перечитать конфигурационные файлы IAX
iax2 prune realtime - очищает кэш realtime
iax2 provision - производит автонастройку IAX пира
http show status - вывести статус HTTP сервера
group show channels - выводит список активных каналов с указанием групп
file convert - конвертация формата аудиофайла
features show - выводит список настроенных коротких кодов
fax show version - показываем версию факсового модуля
fax show stats - выводит историю передачи факсов
fax show settings - показывать глобальные настройки факсов
fax show sessions - показывает статус всех существующих факсовых сессий
fax show session - показывает статус конкретной факсовой сессии
fax show capabilities - показывает информацию о используемых факсовых модулях
fax set debug {on|off} - включение/отключения дебага факсов
dnsmgr status - показывает статус DNS Manager
dnsmgr reload - перезагружает конфигурацию DNS Manager
dnsmgr refresh - выполняет немедленное обновление DNS
dialplan show - выводит подробный список диалпланов
dialplan show globals - показывает глобальные переменные диалплана
dialplan show chanvar - показывает используемые переменные на канале
dialplan set global - установить глобальную переменную в диалплан
dialplan set extenpatternmatchnew true - использовать новый алгоритм набора номеров
dialplan set extenpatternmatchnew false - использовать старый алгоритм набора номеров
dialplan set chanvar -установить переменную на канал
dialplan save - сохранить диалплан в файл
dialplan remove include - удалить "include" из контекста
dialplan remove ignorepat - удалить указанный черный список из контекста
dialplan remove extension - удалить указанный внутренний номер
dialplan remove context - удалить указанный контекст
dialplan reload - перечитать extensions.conf
dialplan debug - включение дебага диалплана
dialplan add include - включить один контекст в другой контекст
dialplan add ignorepat - добавить новый шаблон в черный список
dialplan add extension - добавление внутреннего номера в контекст
devstate list - выводит список состояний устройств
devstate change -  изменить состояние внутреннего номера (доступные значения: UNKNOWN | NOT_INUSE | INUSE | BUSY | INVALID | UNAVAILABLE | RINGING | RINGINUSE | ONHOLD)
database showkey - выводит данные из БД Asterisk по определенному ключу
database show - выводит данные из БД Asterisk
database query - запустить специальный запрос к astdb
database put - добавить/обновить значение в базе данных
database get - получить из базы данных данные
database deltree - удаление из базы данных дерева ключей/значений
database del - удаление из базы данных ключа/значения
data show providers - выводит доступную для получения, по запросу data get, информацию
data get - запрос на получение данных API
dahdi show version - выводит версию модуля Dahdi
dahdi show status - выводит статус интерфейсных плат Dahdi
dahdi show channel - выводит информацию о конкретном канале
dahdi show channels [group|context] - выводит список активных DAHDI каналов
dahdi show cadences - выводит список каденций
dahdi set swgain {rx|tx} - установить коэффициент усиления звука на канале софтверно
dahdi set hwgain {rx|tx} - установить коэффициент усиления звука на канале хардварно
dahdi set dnd - установить/снять статус DND (Do Not Disturb) на канале
dahdi restart - полный рестарт каналов Dahdi
dahdi destroy channels - разрушить канал Dahdi
dahdi create channels - создать канал Dahdi
core waitfullybooted - ждать полной загрузки Asterisk
core stop when convenient - выключение Asterisk, после того когда закончатся текущие вызовы
core stop now - немедленное выключение Asterisk
core stop gracefully - "теплое" выключение Asterisk
core show warranty - выводит информацию о гарантии на Asterisk
core show version - выводит версию Asterisk
core show uptime [seconds] - выводит информацию о продолжительности работы Asterisk и ОС
core show translation - выводит информацию (матрицу) о перекодировании аудиокодеков
core show threads - выводит информацию о запущенных приложениях Asterisk
core show taskprocessors - выводит информацию о запущенных процессах Asterisk
core show sysinfo - выводит информацию об операционной системе
core show switches - выводит альтернативные маршруты
core show sound - выводит информацию по конкретным звуковым файлам
core show sounds - выводит доступные звуки
core show settings - выводит некоторые настройки ядра Asterisk
core show profile - выводит информацию о профилях
core show license - выводит информацию о версии Asterisk
core show image formats - выводит информацию о поддерживаемых форматах изображений
core show hint - выводит информацию о зарегистрированных кодах (feature code) в Asterisk, по конкретному внутреннему номеру
core show hints - выводит информацию о зарегистрированных кодах (feature code) в Asterisk
core show help - выводит список команд CLI Asterisk
core show hanguphandlers - выводит информацию о разрывах вызовов на конкретном канале
core show hanguphandlers all - выводит информацию о разрывах вызовов на всех каналах
core show function - выводит описание специальных функций диалплана
core show file version [like] - выводит список версий файлов используемых в Asterisk
core show file formats - выводит имена доступных форматов файлов
core show config mappings - выводит информацию о доступных к использованию базах данных
core show codec - выводит информацию о конкретном кодеке
core show codecs - выводит список поддерживаемых аудиокодеков
core show channeltypes - выводит список доступных технологий и протоколов для канала
core show channel - выводит информацию о конкретном канале
core show channels [concise|verbose|count] - выводит информацию о текущих каналах
core show calls [uptime] - выводит информацию о количестве текущих вызовов
core show application - выводит информацию о конкретном приложении диалплана
core show applications [like|describing] - показывает доступные приложения диалплана
core set verbose - установка уровня дебага
core set debug channel - Включение/отключение дебага на канале
core restart when convenient - перезагрузка Asterisk после завершения текущих вызовов
core restart now - немедленная перезагрузка Asterisk
core restart gracefully - мягкий перезапуск Asterisk
core reload - перечитать все конфигурационные файлы
core ping taskprocessor - показывает информацию об отклике приложений Asterisk
core clear profile - чистит информацию о профиле
core abort shutdown - прерывает отключение
config show help - выводит список модулей, которые имеют информацию о настройке
config reload - принудительная перезагрузка модулей с перечиткой конфигурационных файлов
config list - показывает файлы настройки относящиеся к конкретным приложениям Asterisk
confbridge unmute - включить голосовой канал у участников конференции
confbridge unlock - разблокировать конференцию
confbridge show profile users - выводит информацию о доступных профилях пользователей конференций
confbridge show profile user - выводит информацию о конкретном пользовательском профиле конференций
confbridge show profile bridges - выводит информацию о доступных профилях конференций
confbridge show profile bridge - выводит информацию о конкретном профиле конференций
confbridge show menus - показывает доступные меню для разных учетных данных
confbridge show menu - показывает какие команды доступны для управления конференцией
confbridge record stop - остановить запись разговоров в конференции
confbridge record start - начать запись разговоров в конференции
confbridge mute - отключить голосовой канал у участников конференции
confbridge lock - заблокировать конференцию
confbridge list - выводит список существующих конференций и их участников
confbridge kick - удалить участников из конференций
cli show permissions - показывает возможности настройки CLI
cli show aliases - показывает алиасы команд CLI
cli reload permissions - перезагрузка CLI прав пользователей
cli check permissions - показывает какими возможностями для настройки Asterisk обладает пользователь
channel request hangup - запрос завершения вызова на данном канале
channel redirect - перевод вызова в канале
channel originate - инициировать вызов. Пример команды "channel originate SIP/1000 extension 2000@from-internal". После ввода данной команды, Asterisk произведет набор номера 1000 и когда он поднимет трубку, Asterisk наберет номер 2000. Необходимо указывать контекст.
cel show status - выводит статус настроек CEL
cdr submit - запись ожидаемых сообщения в CDR
cdr show status - выводит статус настроек CDR
cdr show active - показывает какие каналы пишутся в CDR
cdr set debug [on|off] - запуск дебага в CDR
cc report status - выводит статус всех Call Completion т.е. функций обратного вызова
cc cancel - снять все Call Completion т.е. функцию обратного вызова, подробнее можно почитать в примере
bridge technology {suspend|unsuspend} - приостановить/возобновить использование технологий установки вызовов (bridge)
bridge technology show - выводит статус возможных технологий установки вызовов
bridge show - выводит информацию о конкретном голосовом канале (bridge)
bridge show all - выводит список всех двухсторонних голосовых каналов (bridgeй)
bridge kick - удалить один из каналов из bridge, т.е. разрушить один голосовой канал
ari show user - выводит информацию по конкретному пользователю ARI
ari show users - выводит список пользователей ARI
ari show status - выводит настройки ARI
ari mkpasswd - шифрование пароля, который используется в ari.conf
aoc set debug - включение дебага для сообщений AOC
agi show commands [topic] - выводит список команд AGI
agi set debug [on|off] - включение/отключение дебага AGI
agi exec - добавить команду AGI в канал Async AGI
agi dump html - показывает список AGI команд в формате HTML
ael set debug {read|tokens|macros|contexts|off} - использование дебага AEL
ael reload - перечитать конфигурационные файлы AEL
acl show - показать используемые ACL (Access Control List)
manager reload - перечитывает конфигурационный файлы, связанные с AMI
manager set debug [on|off] - включение/отключение дебага AMI
manager show command - выводит информацию об определенной команде AMI
manager show commands - выводит список команд AMI
manager show connected - выводит список подключенных пользователей AMI
manager show eventq - выводит список очередей событий
manager show events - выводит список событий AMI
manager show event - выводит информацию о событии AMI
manager show settings - выводит глобальные настройки AMI
manager show users - выводит список настроенных пользователей AMI
manager show user - выводит информацию об указанном пользователе
mfcr2 show version - выводит версию библиотеки OpenR2
mfcr2 show variants - выводит список поддерживаемых вариантов использования каналов MFC/R2
mfcr2 show channels [group|context] - выводит список каналов MFC/R2
mfcr2 set idle - перезагружает канал MFC/R2 и устанавливает его в статус IDLE
mfcr2 set debug - устанавливает канал MFC/R2 в режим дебага
mfcr2 set blocked - перезагружает канал MFC/R2 и устанавливает его в статус BLOCKED
mfcr2 call files [on|off] - включение/отключение MFC/R2 файлов
meetme {mute|unmute} - включает/отключает микрофон для конференций
meetme {lock|unlock} - блокирует/разблокирует конференцию для новых пользователей
meetme list - выводит список активных конференц-комнат
meetme kick - сбросить конференцию или пользователя конференции
mgcp audit endpoint - аудит указанного пира MGCP
mgcp reload - перечитать конфигурационные файлы MGCP
mgcp set debug {on|off} - включение/отключение MGCP дебага
mgcp show endpoints - выводит список MGCP пиров
minivm list accounts - выводит список пользователей, использующих Mini-voicemail
minivm list templates - выводит список шаблонов Mini-voicemail
minivm list zones - выводит список часовых поясов, настроенных в Mini-voicemail
minivm reload - перезагрузка конфигурации Mini-voicemail
minivm show settings - выводит глобальные настройки Mini-voicemail
minivm show stats - выводит статистику Mini-voicemail
mixmonitor {start|stop|list} - выполнить команду MixMonitor
module load - загрузить модуль
module reload - перезагрузить конфигурацию указанного модуля
module show [like] -выводит информацию об указанном модуле
module unload - отключить указанный модуль
moh reload - перезагрузка модуля MusicOnHold
moh show classes - выводит список классов и соответствующих каталогов
moh show files - выводит список звуковых файлов и каталогов, используемых для MusicOnHold
sip show sched - выводит состояние очереди планировщика
sip show registry -выводит список зарегистрированных SIP пиров
sip show peer - выводит информацию об указанном SIP пире
sip show peers - выводит список существующих SIP пиров
sip show objects - выводит список объектов SIP
sip show mwi - выводит список подписок MWI (Message-waiting indicator)
sip show inuse - выводит информацию о статусе пользователей
sip show history - выводит историю запросов SIP по конкретному вызову
sip show domains - выводит список SIP доменов
sip show channel - выводит подробную информацию о SIP канале
sip show channelstats - выводит статистику активных SIP каналов
sip show {channels|subscriptions} - выводит список SIP каналов или подписок
sip set history {on|off} - включение/отключение истории SIP
sip set debug {on|off|ip|peer} - включение/отключение SIP дебага
sip reload - перечитать конфигурационные файлы SIP
sip qualify peer - отправляет пакет OPTIONS в сторону указанного пира
sip prune realtime [peer|all] - удалить кэш базы данных Realtime для пользователя/устройства
sip notify - отправка пакета NOTIFY SIP пользователю
say load [new|old] - перечитать файл say.conf
rtp set debug {on|off|ip} - включение/отключение дебага RTP
rtcp set stats {on|off} - включение/отключение статистики RTCP
rtcp set debug {on|off|ip} - включение/отключение дебага RTCP
realtime update2 - используется для теста переменных RealTime
realtime update - обновляет переменные RealTime
realtime store - создание новой строки в базе RealTime
realtime mysql status - выводит информацию о драйвере MySQL RealTime
realtime mysql cache - выводит кэш таблиц драйвера MySQL RealTime
realtime load - используется для вывода переменных RealTime
realtime destroy - удаляет строку из базы данных RealTime
queue {pause|unpause} member - отключить/подключить пользователя от очереди
queue show rules - выводит настройки из файла queuerules.conf
queue show - выводит информацию об очередях
queue set ringinuse - установка параметра ringinuse для определенной очереди
queue set penalty - установка параметра penalty для определенной очереди
queue reset stats - перезагрузить статистику по очередям
queue remove member - удалить пользователя через из указанной очереди
queue reload {parameters|members|rules|all} - перезагрузить очередь, пользователей, правил обработки вызовов или все сразу
queue add member - добавить пользователя в очередь
pri show version - выводит информацию о версии модуля libpri
pri show span - выводит информацию о конкретной PRI линии
pri show spans - выводит информацию о PRI линиях
pri show debug - выводит информацию о настройках PRI дебага
pri show channels - выводит информацию о канале PRI
pri set debug file - включение дебага PRI и запись его в файл
pri set debug {on|off|hex|intense|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15} span - включение дебага PRI
pri service enable channel - включение канала PRI
pri service disable channel - отключение канала PRI
pri destroy span - разрушить канал PRI
presencestate list - выводит список пользовательских состояний присутствия
presencestate change - изменить пользовательский статус состояния присутствия
parking show - выводит информацию о парковочных слотах и конкретном слоте
odbc show - выводит список ODBC DSN
no debug channel - отключение дебага на канале (каналах)
sip show settings - выводит глобальные настройки SIP
sip show tcp - выводит список TCP соединений
sip show users - выводит информацию о SIP пользователях
sip show user- выводит информацию о конкретном SIP пользователе
sip unregister - удаление регистрации SIP пира с АТС
sla show stations - выводит список SLA
sla show trunks - выводит список SLA транков
stun set debug {on|off} - включение/отключение STUN дебага
timing test - запуск проверки синхронизации времени
transcoder show - выводит загрузку транскодинга канала DAHDI
udptl set debug {on|off|ip} - включение/отключение дебага UDPTL
udptl show config - выводит настройки UDPTL
ulimit - выводит или устанавливает ограничение на использование ресурсов процессами
voicemail reload - перечитать конфигурационные файлы VoiceMail
voicemail show users - список пользователей, которые используют голосовую почту
voicemail show zones - выводит список часовых поясов, настроенных в голосовой почте
xmldoc dump - собрать XML файлы в указанный файл

Данный список актуален для версии Asterisk 13.3.2

voipnotes.ru/komandy-cli-asterisk/

4 проблемы устаревших систем телефонии, которые может решить IP-телефония

Asterisk
Недавнее исследование, проведенное Hanover Research показало, что, несмотря на рост электронной почты, видео и социальных медиа, 74% представителей малого и среднего бизнеса (SMB) говорит, что голосовая связь остается крайне или очень важным средством для бизнеса. Тем не менее, те предприятия, которые до сих пор имеют традиционные системы аналоговой телефонии (и которых до сих пор большинство), получили 4 проблемы, которые им придется разрешить в конце концов. И все они могут быть решены с помощью перехода на системы IP-телефонии (VoIP).

Устаревшее оборудование и сопровождение

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

Ограниченная емкость и масштабируемость

Хорошо, когда ваша компания растет. И плохо, но многие предприятия перерастают свою инфраструктуру и им становится необходима система телефонии, которая может обрабатывать тот увеличивающийся объем вызовов, количества абонентов и данных, передаваемых по сети. Добавление новых территориально удаленных офисов в большинстве случаев является кошмаром в случае с традиционной системой, так как оборудование требуется в каждом новом здании. В случае с VoIP, так как все сотрудники в одной и той же IP-сети, не требуется никакого дополнительного оборудования, что экономит время и деньги. С традиционной АТС, добавление дополнительных линии для сотрудников может занять несколько недель. Если у вас система IP телефонии, процесс занимает несколько минут. Эта поддержка роста работает в обоих направлениях, например если у вас выдался тяжелый год и ваши потребности в росте уменьшаются, вы можете удалить часть линий и платить только за тот объем номеров и минут, которые вы используете.

Особенности и функциональные возможности

Системы IP-телефонии умеют маршрутизировать клиентов в соответствующий отдел без проигрывания меню. Зачем? Другие компании, которые уже реализовали системы VoIP имеют возможности для превосходного обслуживания клиентов, так что если ваш бизнес этого не делает, конкуренты будут воровать их. Сотрудники и клиенты нуждаются расширенных функциональных возможностях, чем 3-полосный вызов и идентификатор вызывающего абонента. Видео чат, обмен мгновенными сообщениями, состояние присутствия, голосовая почта по электронной почте, записи телефонных разговоров, аналитические функции, которые повышают производительность и качество обслуживания клиентов. Эти и другие функции предлагаются в решениях унифицированных коммуникаций (UC).

Ежемесячные сборы

Компании всегда ищут способы сократить расходы, но, что большинство не знают, что делать если это их телефонный счет. Когда новые клиенты звонят нам, один из вопросов, который мы задаем им, какой телефонный счет был в прошлом месяце. Девять из десяти из них не имеют ни малейшего представления, но они знают, что они, вероятно, должны знать, так как много денег, похоже, расходуется на связь каждый месяц. Переход на VoIP может сэкономить до 70% от ваших ежемесячных расходов на связь, немедленно. Если вы выбираете облачную систему IP-телефонии, вы сможете получить новую телефонную систему, которая заработает в течение часа (а не недель) и без каких-либо затрат. Кроме того, многие тарифные планы VoIP дают возможность ограниченного или многоканального плана оплаты, так что вы можете оплатить то количеству линий или минут, что используете в зависимости от того, что сейчас имеет больше смысла для вашей бизнес-модели.

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

Читать дальше

Автоматический обзвон абонентов, Asterisk автообзвон

Asterisk
Для этого нам понадобиться asterisk, ну и если ваш скрипт будет работать с базой тогда mysql

Конфигурация файлов asterisk


extensions.conf
Создадим контекст auto_dial, в котором опишем что и как мы проигрываем, и куда направляем исходящий вызов.

Код
[auto_dial]
exten => _X.,1,Dial(SIP/provider/${EXTEN:1})


Теперь проигрываем записанную запись
exten => s,1,Playback(Demo); - запись можно записать в формате mp3

Далее остается написать скрипт который будет создавать outgoing файлы.

Hам нужно будет помещать файлы в каталог /var/spool/asterisk/outgoing/, с таким содержанием
Channel: LOCAL/2222222@auto_dial - 2222222 -это телефон на который asterisk будет звонить и проигрывать demo.mp3.
CallerID: Ваш телефон - телефон который будет отображаться у него при определении
MaxRetries: 2
RetryTime: 10
WaitTime: 60
# MaxRetries: <number> количество попыток перезвонить
# RetryTime: <number> время между попытками перезвонить
# WaitTime: <number> сколько секунд ждать пока абонент ответит
Context: auto_dial
Extension: s
Priority: 2

Пример скрипта.
#!/usr/local/bin/perl
$file = "/var/spool/asterisk/outgoing/$ARGV[0]";
$phone = $ARGV[0];
open(FILE, "> $file");
print FILE "Channel: LOCAL/".$phone."\@auto_dial\n";
print FILE "CallerID: 5555555\n";
print FILE "MaxRetries: 2\n";
print FILE "RetryTime: 10\n";
print FILE "WaitTime: 60\n";
print FILE "Context: auto_dial\n";
print FILE "Extension: s\n";
print FILE "Priority: 2\n";
close(FILE);

Пример extensions.conf
[auto_dial]
exten => _X.,1,Dial(SIP/DenyaTelecom/${EXTEN:1})
exten => s,1,Playback(demo-congrats)

Это самый просто пример, который только показывает как это работает, вы вызываете этот скрипт вместе с телефоном на который нужно позвонить, пример:
./script.pl 8689390

То же самое на php, если нужно обзвонить пул номеров:
#!/usr/bin/php -q
<?php

$callto=111111; #первый номер списка
while ($callto<222222)
{
$callfile="/work/tmp/calls-".$callto.".call";
$cf =fopen($callfile,"w+"); 
fputs($cf,"Channel: SIP/".$callto."@trunkname\n");
fputs($cf,"Callerid: Your_callerid\n");
fputs($cf,"application: Playback\n");
fputs($cf,"Data:/work/zapisi\n");
fclose($cf);
copy($callfile,"/asteriskpath/var/spool/asterisk/outgoing/".$callto."call");
$callto=$callto+1;
if ($callto % 10 ==0) 
{
sleep(60); 
}
}
?>

sleep — для ограничие количества одновременных звонков

Ограничение входящих вызовов в Elastix (Asterisk)

Asterisk
Ограничить исходящие вызовы через SIP транк легко, для этого есть опция
call-limit=N

Но для входящих вызовов нужно использовать счетчик количества вызовов в диалплане. В случае чистого астериска это выглядит так:
exten => 559558,1,Set(GROUP()=group1)  ; Объединяем вызовы в группу
exten => 559558,n,Set(CALLS1=${GROUP_COUNT(group1)})  ; Считаем сколько вызовов в группе
exten => 559558,n,NoOp(${CALLS1})  ; Выводим в консоль счетчик (хотя строка выше и так должна вывести счетчик)
exten => 559558,n,ExecIf($[ ${CALLS1} > 4 ]?Hangup(34)) ; Если вызовов больше 4, сбрасываем. 34 это код отбоя  
exten => 559558,n,Dial(sip/101/${EXTEN},20)  ;  Отправляем вызов дальше

В случае с Elastix нужно добавить подобные строки в файл extensions_override_elastix.conf.
Читать дальше

Elastix съедает всю память

Asterisk
Есть у Elastix особенность, периодически память заканчивается и asterisk начинает тормозить. Для очистки памяти добавьте в cron задание:
echo 3 > /proc/sys/vm/drop_caches

Периодичность в зависимости от скорости заполнения памяти

Уведомления о пропущенных вызовах в Asterisk (Elastix 2.4)

Asterisk
Озадачился простейшей вроде задачей, уведомлением о пропущенных звонках. Как оказалось «из коробки» в Elastix не выберешь даже просто пропущенные вызовы. Все потому, что все вызовы попадают в очередь, где сразу помечаются как отвеченные. Так, что если вам нужно выбрать пропущенные вызовы, можете переделать какой-то из отчетов добавив туда фильтрацию такого вида:
dcontext =  'ext-queues' and dstchannel = ''

Если вам нужно уведомление о пропущенных вызовах в электронной почте в реальном режиме времени, то добавим поиск параметра dstchannel = '' при отбое звонка. Для этого добавим в начало файла /etc/asterisk/extensions_override_elastix.conf пару строк:
Читать дальше

Релиз Asterisk 12 выйдет в 2013 году

Asterisk
Информация с сайта разработчика:
В стандартном релизе целью развития этой версии Asterisk является архитектурные усовершенствования, а также основные новые функции. Такие как:
  • Новый расширяемый и производительный драйвер SIP канала построенный на стеке SIP — pjsip .
  • Новая внутренняя шина сообщений, которая передает данные о состоянии каналов, мостов, конечных устройств и других объектов по всему Asterisk.
  • Сильно обновленная версия AMI, c улучшенной семантикой канала и последовательности информации о событии.
  • Новый интерфейс ARI, позволяющий внешним приложениям управлять каналами, мостами и других объектами телефонии напрямую.

Ссылки
wiki.asterisk.org/wiki/display/AST/Asterisk+12+Documentation
wiki.asterisk.org/wiki/display/AST/New+in+12
blogs.digium.com/2013/06/28/asterisk_12_part_one/

Остановка и перезапуск Asterisk

Asterisk
Для остановки и перезагрузки Asterisk, есть несколько команд:
  • core stop now — Эта команда останавливает Asterisk немедленно, заканчивая все текущие вызовы.
  • core stop gracefully — Эта команда предотвращает новые вызовы, но позволяет закончить текущие звонки. Когда все звонки закончились, Asterisk останавливается.
  • core stop when convenient — Эта команда ждет, пока в Asterisk будет вызовов, а затем останавливает службу. Это не мешает новым вызовам.

Читать дальше

chan_h323.c:2317 answer_call

Asterisk
Добрый день! мучает меня такая ошибка " chan_h323.c:2317 answer_call: Dropping call because extensions '2', 's' and 'i' doesn't exists in context [default] " Астериск работает с АСТ Panasonic TDE-100. Эта ошибка возникает при наборе в префиксе «2» все номера 5и значные (12345) на «1» префикс звонит без проблем а когда набираешь «2» (23456) то астериск выдает ошибку и идут короткие гудки.

extensions.conf

exten => _XXXXX,1,NoOp()
exten => _XXXXX,n,Set(CALLERID(name)=*******)
exten => _XXXXX,n,Dial(IAX2/***************/${EXTEN},35)
exten => _XXXXX,n,Set(CHANNEL(language)=ru)
exten => _XXXXX,n,Playback(vm-nobodyavail)
exten => _XXXXX,n,Hangup()

Не проходят вызовы или голос в asterisk?

Asterisk
Очень распространенная проблема с голосом по IP, когда нужно передать в другую сеть, то не слышно вас или собеседника. Сам бился много раз. Нашел в сети полезную схему как диагностировать проблему. Может кому пригодится в решении проблемы.



И еще одна схема дальше

Индикация состояния абонента в очереди на телефоне с BLF кнопками

Asterisk
imageСегодня задача немного посложнее.
Клиенту нужно, чтобы нажатием на кнопку быстрого набора можно было входить/выходить в очередь. При этом если абонент в очереди, то кнопка горит зеленым, если нет, то моргает красным. Сделать такое можно если IP само собой телефон поддерживает функцию BLF. Для работы функции на кнопке нужно будет прописать номер вида *12111*222, где 111 номер очереди, а 222 номер абонента. Тестировалось это на Grandstream GXP серии, самых разных. Сервером выступает Linux c Elastix, ну и можно просто Asterisk 1.6+.
Одним из условий является отсутствие привязки к номеру абонента. Номера очередей фиксированы, а абоненты могут быть любые. Для мониторинга состояния в Asterisk нужен HINT и если его нет, мы его будем создавать.
Читать дальше

Индикация работы режима DnD на BLF клавише в Asterisk

Asterisk
DnD достаточно востребованная функция, но обычно режим включается на самом телефоне, не уведомляя об этом Asterisk, отчего тот будет обращаться к телефону пользователя, думая, что тот на месте и готов ответить на звонок. Как нам включить режим DnD на самом Asterisk и чтобы кнопка включения при активированном DnD моргала красным цветом?
Для этого нам потребуется телефон с BLF кнопками и пара макросов.
Читать дальше

Ошибка chan_unistim.c

Asterisk
народ! подскажите ставлю asterisk18-1.8.15.0 на freebsd 8.2 выдает chan_unistim.c: Your OS does not support IP_PKTINFO, you must set public_ip и func_callerid.c: CALLERPRES is deprecated. Use CALLERID(name-pres) or CALLERID(num-pres) instead. не могу понять где это искать. порты обновлял и make clean тож делал))

Как настроить прогноз погоды на IP телефоне Grandstream GXP 2110

Asterisk
Точнее на любых телефонах Grandstream GXP серии. В настройках нужно указать город для которого будет выводится прогноз, но нужно забить код города. Где его взять? Как оказалось опытным путем на сайте weather.aol.com. На сайте вводим в поле «Get Weather For:» название города по буржуйски, ищем свой город, тыкаем и видим ссылку вида
http://weather.aol.com/forecast/todays/russia/tambovskaya/tambov/id/rsxx0209

rsxx0209 и есть нужный код. Забиваем его в настройках:
Как настроить прогноз погоды на IP телефоне Grandstream GXP 2110
Заодно указываем, что прогноз нужен в цельсиях и применяем. Должно обновится через пару секунд.

xtelekom.ru — офисная ip телефония

Начальная установка Asterisk и AsteriskGUI

Asterisk
Скорее заметка чтоб не забыть) Авось и кому еще полезно будет)
Все действия производились на FreeBSD 9 i386/amd64 — в смысле справедливо для обоих архитектур.
Кроме указанных ниже действий, потребуется установить bash хотя можно и без него.
Из портов устанавливаем Asterisk:

 #cd /usr/ports/net/asterisk 
 # make install clean

Затем ставим Dahdi

 # cd /usr/ports/misc/dahdi-kmod
 # make install clean

В rc.conf добавляем:

 asterisk_enable="YES"
 dahdi_enable="YES"

Читать дальше

Оригинация звонка из PHP в Asterisk

Asterisk
Вариант 1
<?  
$strHost="127.0.0.1";  
$strUser="admin";  
$strSecret="****";  
$strChannel="Local/".$_GET["to"]."@from-provider";  
$strWaitTime="10";  
$strCallerId=$_GET["from"];  
$strReceiver=$_GET["from"];  
$strContext="from-provider";  
  
  $oSocket = @fsockopen($strHost, 5038, $errnum, $errdesc)  
or die("Connection to host failed");  
        fputs($oSocket, "Action: login\r\n");  
        fputs($oSocket, "Events: off\r\n");  
        fputs($oSocket, "Username: $strUser\r\n");  
        fputs($oSocket, "Secret: $strSecret\r\n\r\n");  
        fputs($oSocket, "Action: originate\r\n");  
        fputs($oSocket, "Channel: $strChannel\r\n");  
        fputs($oSocket, "WaitTime: $strWaitTime\r\n");  
        fputs($oSocket, "CallerID: $strCallerId\r\n");  
        fputs($oSocket, "Exten: $strReceiver\r\n");  
        fputs($oSocket, "Context: $strContext\r\n");  
        fputs($oSocket, "Priority: 1\r\n\r\n");  
        fputs($oSocket, "Action: Logoff\r\n\r\n");  
  while (!feof($oSocket)) {  
    $wrets .= fread($oSocket, 8192);  
  }  
 fclose($oSocket);  
  if (stripos($wrets, 'Originate successfully queued')) {  
    echo "Call completed ";  
  } else {  
    echo "No accept call ";  
  }  
?>


Вариант 2

if ( ! empty( $num ) )
{
        echo "Dialing $num\r\n";

        $timeout = 10;
        $asterisk_ip = "192.168.0.100";

        $socket = fsockopen($asterisk_ip,"5038", $errno, $errstr, $timeout);
        fputs($socket, "Action: Login\r\n");
        fputs($socket, "UserName: manager\r\n");
        fputs($socket, "Secret: gandalf\r\n\r\n");

        $wrets=fgets($socket,128);

        echo $wrets;

        fputs($socket, "Action: Originate\r\n" );
        fputs($socket, "Channel: SIP/$ext\r\n" );
        fputs($socket, "Exten: 9$num\r\n" );
        fputs($socket, "Context: outbound-dialing\r\n" );
        fputs($socket, "Priority: 1\r\n" );
        fputs($socket, "Async: yes\r\n\r\n" );

        $wrets=fgets($socket,128);
        echo $wrets;
}
else
{
        echo "Unable to determine number from (" . $_REQUEST[['n'] . ")\r\n";
}


xtelekom.ru — офисная ip телефония

Установка OpenSIPS 1.6.1 на CentOS5 x64

Asterisk
X telekom может помочь вам на любом этапе внедрения VoIP технологий — от установки CentOS на сервере до установки и настройки OpenSIPS и Asterisk.
Если вы хотите сделать все самостоятельно, вот инструкция, которая должна помочь. Установка OpenSIPS v1.6.1 на CentOS 5 64-бита очень проста. Все зависимости можно установить с помощью YUM. Необходимые для OpenSIPS пакеты подтянутся автоматически. В данной инструкции OpenSIPS должен быть установлен с поддержкой MySQL.
До установки необходимо установить пакеты zlib, openssl, mysql.

Читать дальше