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

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

спросил 2017-01-16 18:25:51 +0400

symon Gravatar symon

Как получить номер EXTENSION кто поднял трубку при звонке в группе

Есть задача по интеграции CRM и Asteriska. Для реализации этого был выбран путь GET-POST запросов. Логика следующая: 1.Пришел звонок 2.Запрос на сервере с номером звонящего 3.Определение новый или существующий клиент 4.Отправка звонка в соответствующий правилу подпункт.

Вот код Extension_Custom [20003-incoming]

exten => s,1,Set(CALLERID(name)=${CURL(http://trulala/call?tel={CALLERID(num)})}) exten => s,2,Set(managernumber=${CUT(CALLERID(name),>,3)}) exten => s,3,Set(managernumber=${CUT(managernumber,\",6)}) exten => s,4,Set(managerID=${CUT(CALLERID(name),>,3)}) exten => s,5,Set(managerID=${CUT(managerID,\",4)}) exten => s,6,Set(__Clientnum=${CALLERID(num)}) exten => s,7,Set(CALLERID(name)=${CUT(CALLERID(name),>,3)}) exten => s,8,Set(CALLERID(name)=${CUT(CALLERID(name),\",2)})

exten => s,n,ExecIf($[ "${managernumber}" = "null" ] ?Gosub(new-client,s,1))

exten => s,n,ExecIf($[ "${CALLERID(name)}" = "null" ] ?Gosub(new-client,s,1))

exten => s,n,Dial(Local/${managernumber},,[20003-incoming]

exten => s,1,Set(CALLERID(name)=${CURL(http://trulala/call?tel={CALLERID(num)})}) exten => s,2,Set(managernumber=${CUT(CALLERID(name),>,3)}) exten => s,3,Set(managernumber=${CUT(managernumber,\",6)}) exten => s,4,Set(managerID=${CUT(CALLERID(name),>,3)}) exten => s,5,Set(managerID=${CUT(managerID,\",4)}) exten => s,6,Set(__Clientnum=${CALLERID(num)}) exten => s,7,Set(CALLERID(name)=${CUT(CALLERID(name),>,3)}) exten => s,8,Set(CALLERID(name)=${CUT(CALLERID(name),\",2)})

exten => s,n,ExecIf($[ "${managernumber}" = "null" ] ?Gosub(new-client,s,1))

exten => s,n,ExecIf($[ "${CALLERID(name)}" = "null" ] ?Gosub(new-client,s,1))

exten => s,n,Dial(Local/${managernumber},,mM(manager-answered,))

exten => s,n,Goto(s-${DIALSTATUS},1) exten => s-NOANSWER,1,Gosub(manager-busy,s,1) exten => s-BUSY,1,Gosub(manager-busy,s,1) exten => s-UNKNOWN,1,Gosub(manager-busy,s,1) exten => s-CONGESTION,1,Gosub(manager-busy,s,1) exten => s-CHANUNAVAIL,1,Gosub(manager-busy,s,1) exten => h,1,Set(rtn=${CURL(http://trulala/ecall,Status=${CDR(disposition)} exten1=${CDR(dstchannel)} exten=${CDR(dst)} & cidnum=${CALLERID(num)}&AllCallTime=${CDR(duration)}&CallTime=${CDR(billsec)})}) exten => h,2,Wait(5) exten => h,3,NoOp(CURL-RESPONSE: ${rtn})

exten => s,n,Hangup()

[new-client] exten => s,1,Dial(local/603@from-internal,,) exten => h,1,Set(rtn=${CURL(http://trulala/ecall,Status=${CDR(disposition)} exten1=${CDR(dstchannel)} exten=${CDR(dst)} & cidnum=${CALLERID(num)}&AllCallTime=${CDR(duration)}&CallTime=${CDR(billsec)})}) exten => h,2,Wait(5) exten => h,3,NoOp(CURL-RESPONSE: ${rtn})

[manager-busy] exten => s,1,Dial(local/603@from-internal,,) exten => h,1,Set(rtn=${CURL(http://trulala/ecall,Status=${CDR(disposition)} exten1=${CDR(dstchannel)} exten=${CDR(dst)} & cidnum=${CALLERID(num)}&AllCallTime=${CDR(duration)}&CallTime=${CDR(billsec)})}) exten => h,2,Wait(5) exten => h,3,NoOp(CURL-RESPONSE: ${rtn}))

Как получить номер EXTENSION кто поднял трубку при звонке в группе

Есть задача по интеграции CRM и Asteriska. Для реализации этого был выбран путь GET-POST запросов. Логика следующая: 1.Пришел звонок 2.Запрос на сервере с номером звонящего 3.Определение новый или существующий клиент 4.Отправка звонка в соответствующий правилу подпункт.

Вот код Extension_Custom

 [20003-incoming]

exten => s,1,Set(CALLERID(name)=${CURL(http://trulala/call?tel={CALLERID(num)})}) exten => s,2,Set(managernumber=${CUT(CALLERID(name),>,3)}) exten => s,3,Set(managernumber=${CUT(managernumber,\",6)}) exten => s,4,Set(managerID=${CUT(CALLERID(name),>,3)}) exten => s,5,Set(managerID=${CUT(managerID,\",4)}) exten => s,6,Set(__Clientnum=${CALLERID(num)}) exten => s,7,Set(CALLERID(name)=${CUT(CALLERID(name),>,3)}) exten => s,8,Set(CALLERID(name)=${CUT(CALLERID(name),\",2)})

exten => s,n,ExecIf($[ "${managernumber}" = "null" ] ?Gosub(new-client,s,1))

exten => s,n,ExecIf($[ "${CALLERID(name)}" = "null" ] ?Gosub(new-client,s,1))

exten => s,n,Dial(Local/${managernumber},,[20003-incoming]

exten => s,1,Set(CALLERID(name)=${CURL(http://trulala/call?tel={CALLERID(num)})}) exten => s,2,Set(managernumber=${CUT(CALLERID(name),>,3)}) exten => s,3,Set(managernumber=${CUT(managernumber,\",6)}) exten => s,4,Set(managerID=${CUT(CALLERID(name),>,3)}) exten => s,5,Set(managerID=${CUT(managerID,\",4)}) exten => s,6,Set(__Clientnum=${CALLERID(num)}) exten => s,7,Set(CALLERID(name)=${CUT(CALLERID(name),>,3)}) exten => s,8,Set(CALLERID(name)=${CUT(CALLERID(name),\",2)})

exten => s,n,ExecIf($[ "${managernumber}" = "null" ] ?Gosub(new-client,s,1))

exten => s,n,ExecIf($[ "${CALLERID(name)}" = "null" ] ?Gosub(new-client,s,1))

exten => s,n,Dial(Local/${managernumber},,mM(manager-answered,))

exten => s,n,Goto(s-${DIALSTATUS},1) exten => s-NOANSWER,1,Gosub(manager-busy,s,1) exten => s-BUSY,1,Gosub(manager-busy,s,1) exten => s-UNKNOWN,1,Gosub(manager-busy,s,1) exten => s-CONGESTION,1,Gosub(manager-busy,s,1) exten => s-CHANUNAVAIL,1,Gosub(manager-busy,s,1) exten => h,1,Set(rtn=${CURL(http://trulala/ecall,Status=${CDR(disposition)} exten1=${CDR(dstchannel)} exten=${CDR(dst)} & cidnum=${CALLERID(num)}&AllCallTime=${CDR(duration)}&CallTime=${CDR(billsec)})}) exten => h,2,Wait(5) exten => h,3,NoOp(CURL-RESPONSE: ${rtn})

exten => s,n,Hangup()

[new-client] exten => s,1,Dial(local/603@from-internal,,) exten => h,1,Set(rtn=${CURL(http://trulala/ecall,Status=${CDR(disposition)} exten1=${CDR(dstchannel)} exten=${CDR(dst)} & cidnum=${CALLERID(num)}&AllCallTime=${CDR(duration)}&CallTime=${CDR(billsec)})}) exten => h,2,Wait(5) exten => h,3,NoOp(CURL-RESPONSE: ${rtn})

[manager-busy] exten => s,1,Dial(local/603@from-internal,,) exten => h,1,Set(rtn=${CURL(http://trulala/ecall,Status=${CDR(disposition)} exten1=${CDR(dstchannel)} exten=${CDR(dst)} & cidnum=${CALLERID(num)}&AllCallTime=${CDR(duration)}&CallTime=${CDR(billsec)})}) exten => h,2,Wait(5) exten => h,3,NoOp(CURL-RESPONSE: ${rtn}))${rtn}))

Как получить номер EXTENSION кто поднял трубку при звонке в группе

Есть задача по интеграции CRM и Asteriska. Для реализации этого был выбран путь GET-POST запросов. Логика следующая: 1.Пришел звонок 2.Запрос на сервере с номером звонящего 3.Определение новый или существующий клиент 4.Отправка звонка в соответствующий правилу подпункт.

Вот код Extension_Custom


[20003-incoming]

exten => s,1,Set(CALLERID(name)=${CURL(http://trulala/call?tel={CALLERID(num)})}) exten => s,2,Set(managernumber=${CUT(CALLERID(name),>,3)}) exten => s,3,Set(managernumber=${CUT(managernumber,\",6)}) exten => s,4,Set(managerID=${CUT(CALLERID(name),>,3)}) exten => s,5,Set(managerID=${CUT(managerID,\",4)}) exten => s,6,Set(__Clientnum=${CALLERID(num)}) exten => s,7,Set(CALLERID(name)=${CUT(CALLERID(name),>,3)}) exten => s,8,Set(CALLERID(name)=${CUT(CALLERID(name),\",2)})

exten => s,n,ExecIf($[ "${managernumber}" = "null" ] ?Gosub(new-client,s,1))

exten => s,n,ExecIf($[ "${CALLERID(name)}" = "null" ] ?Gosub(new-client,s,1))

exten => s,n,Dial(Local/${managernumber},,[20003-incoming]

exten => s,1,Set(CALLERID(name)=${CURL(http://trulala/call?tel={CALLERID(num)})}) exten => s,2,Set(managernumber=${CUT(CALLERID(name),>,3)}) exten => s,3,Set(managernumber=${CUT(managernumber,\",6)}) exten => s,4,Set(managerID=${CUT(CALLERID(name),>,3)}) exten => s,5,Set(managerID=${CUT(managerID,\",4)}) exten => s,6,Set(__Clientnum=${CALLERID(num)}) exten => s,7,Set(CALLERID(name)=${CUT(CALLERID(name),>,3)}) exten => s,8,Set(CALLERID(name)=${CUT(CALLERID(name),\",2)})

exten => s,n,ExecIf($[ "${managernumber}" = "null" ] ?Gosub(new-client,s,1))

exten => s,n,ExecIf($[ "${CALLERID(name)}" = "null" ] ?Gosub(new-client,s,1))

exten => s,n,Dial(Local/${managernumber},,mM(manager-answered,))

exten => s,n,Goto(s-${DIALSTATUS},1) exten => s-NOANSWER,1,Gosub(manager-busy,s,1) exten => s-BUSY,1,Gosub(manager-busy,s,1) exten => s-UNKNOWN,1,Gosub(manager-busy,s,1) exten => s-CONGESTION,1,Gosub(manager-busy,s,1) exten => s-CHANUNAVAIL,1,Gosub(manager-busy,s,1) exten => h,1,Set(rtn=${CURL(http://trulala/ecall,Status=${CDR(disposition)} exten1=${CDR(dstchannel)} exten=${CDR(dst)} & cidnum=${CALLERID(num)}&AllCallTime=${CDR(duration)}&CallTime=${CDR(billsec)})}) exten => h,2,Wait(5) exten => h,3,NoOp(CURL-RESPONSE: ${rtn})

exten => s,n,Hangup()

[new-client] exten => s,1,Dial(local/603@from-internal,,) exten => h,1,Set(rtn=${CURL(http://trulala/ecall,Status=${CDR(disposition)} exten1=${CDR(dstchannel)} exten=${CDR(dst)} & cidnum=${CALLERID(num)}&AllCallTime=${CDR(duration)}&CallTime=${CDR(billsec)})}) exten => h,2,Wait(5) exten => h,3,NoOp(CURL-RESPONSE: ${rtn})

[manager-busy] exten => s,1,Dial(local/603@from-internal,,) exten => h,1,Set(rtn=${CURL(http://trulala/ecall,Status=${CDR(disposition)} exten1=${CDR(dstchannel)} exten=${CDR(dst)} & cidnum=${CALLERID(num)}&AllCallTime=${CDR(duration)}&CallTime=${CDR(billsec)})}) exten => h,2,Wait(5) exten => h,3,NoOp(CURL-RESPONSE: ${rtn}))

Код работает. Стала проблема в том что POST запросом нужно передать информацию о завершенном звонке. Длительность, кто поднял трубку, стсатус звонка и тд и тп... У меня не получается получить информацию о том кто поднял трубку... Я ее получаю и пишет мне что трубку взял "s" или группа 603. В CDR информация аналогична. Голова уже квадратная. Не знаю куда копать.

Как получить номер EXTENSION кто поднял трубку при звонке в группе

Есть задача по интеграции CRM и Asteriska. Для реализации этого был выбран путь GET-POST запросов. Логика следующая: 1.Пришел звонок 2.Запрос на сервере с номером звонящего 3.Определение новый или существующий клиент 4.Отправка звонка в соответствующий правилу подпункт.

Вот код Extension_Custom


[20003-incoming]

exten => s,1,Set(CALLERID(name)=${CURL(http://trulala/call?tel={CALLERID(num)})}) exten => s,2,Set(managernumber=${CUT(CALLERID(name),>,3)}) exten => s,3,Set(managernumber=${CUT(managernumber,\",6)}) exten => s,4,Set(managerID=${CUT(CALLERID(name),>,3)}) exten => s,5,Set(managerID=${CUT(managerID,\",4)}) exten => s,6,Set(__Clientnum=${CALLERID(num)}) exten => s,7,Set(CALLERID(name)=${CUT(CALLERID(name),>,3)}) exten => s,8,Set(CALLERID(name)=${CUT(CALLERID(name),\",2)})

exten => s,n,ExecIf($[ "${managernumber}" = "null" ] ?Gosub(new-client,s,1))

exten => s,n,ExecIf($[ "${CALLERID(name)}" = "null" ] ?Gosub(new-client,s,1))

exten => s,n,Dial(Local/${managernumber},,[20003-incoming]

exten => s,1,Set(CALLERID(name)=${CURL(http://trulala/call?tel={CALLERID(num)})}) exten => s,2,Set(managernumber=${CUT(CALLERID(name),>,3)}) exten => s,3,Set(managernumber=${CUT(managernumber,\",6)}) exten => s,4,Set(managerID=${CUT(CALLERID(name),>,3)}) exten => s,5,Set(managerID=${CUT(managerID,\",4)}) exten => s,6,Set(__Clientnum=${CALLERID(num)}) exten => s,7,Set(CALLERID(name)=${CUT(CALLERID(name),>,3)}) exten => s,8,Set(CALLERID(name)=${CUT(CALLERID(name),\",2)})

exten => s,n,ExecIf($[ "${managernumber}" = "null" ] ?Gosub(new-client,s,1))

exten => s,n,ExecIf($[ "${CALLERID(name)}" = "null" ] ?Gosub(new-client,s,1))

exten => s,n,Dial(Local/${managernumber},,mM(manager-answered,))

exten => s,n,Goto(s-${DIALSTATUS},1) exten => s-NOANSWER,1,Gosub(manager-busy,s,1) exten => s-BUSY,1,Gosub(manager-busy,s,1) exten => s-UNKNOWN,1,Gosub(manager-busy,s,1) exten => s-CONGESTION,1,Gosub(manager-busy,s,1) exten => s-CHANUNAVAIL,1,Gosub(manager-busy,s,1) exten => h,1,Set(rtn=${CURL(http://trulala/ecall,Status=${CDR(disposition)} exten1=${CDR(dstchannel)} exten=${CDR(dst)} & cidnum=${CALLERID(num)}&AllCallTime=${CDR(duration)}&CallTime=${CDR(billsec)})}) exten => h,2,Wait(5) exten => h,3,NoOp(CURL-RESPONSE: ${rtn})

exten => s,n,Hangup()

[new-client] exten => s,1,Dial(local/603@from-internal,,) exten => h,1,Set(rtn=${CURL(http://trulala/ecall,Status=${CDR(disposition)} exten1=${CDR(dstchannel)} exten=${CDR(dst)} & cidnum=${CALLERID(num)}&AllCallTime=${CDR(duration)}&CallTime=${CDR(billsec)})}) exten => h,2,Wait(5) exten => h,3,NoOp(CURL-RESPONSE: ${rtn})

[manager-busy] exten => s,1,Dial(local/603@from-internal,,) exten => h,1,Set(rtn=${CURL(http://trulala/ecall,Status=${CDR(disposition)} exten1=${CDR(dstchannel)} exten=${CDR(dst)} & cidnum=${CALLERID(num)}&AllCallTime=${CDR(duration)}&CallTime=${CDR(billsec)})}) exten => h,2,Wait(5) exten => h,3,NoOp(CURL-RESPONSE: ${rtn}))

Код работает. Стала проблема в том что POST запросом нужно передать информацию о завершенном звонке. Длительность, кто поднял трубку, стсатус звонка и тд и тп... У меня не получается получить информацию о том кто поднял трубку... Я ее получаю и пишет мне что трубку взял "s" или группа 603. В CDR информация аналогична. Голова уже квадратная. Не знаю куда копать.

Как получить номер EXTENSION кто поднял трубку при звонке в группе

Есть задача по интеграции CRM и Asteriska. Для реализации этого был выбран путь GET-POST запросов. Логика следующая: 1.Пришел звонок 2.Запрос на сервере с номером звонящего 3.Определение новый или существующий клиент 4.Отправка звонка в соответствующий правилу подпункт.

Вот код Extension_Custom


[20003-incoming]

exten => s,1,Set(CALLERID(name)=${CURL(http://trulala/call?tel={CALLERID(num)})}) exten => s,2,Set(managernumber=${CUT(CALLERID(name),>,3)}) exten => s,3,Set(managernumber=${CUT(managernumber,\",6)}) exten => s,4,Set(managerID=${CUT(CALLERID(name),>,3)}) exten => s,5,Set(managerID=${CUT(managerID,\",4)}) exten => s,6,Set(__Clientnum=${CALLERID(num)}) exten => s,7,Set(CALLERID(name)=${CUT(CALLERID(name),>,3)}) exten => s,8,Set(CALLERID(name)=${CUT(CALLERID(name),\",2)})

exten => s,n,ExecIf($[ "${managernumber}" = "null" ] ?Gosub(new-client,s,1))

exten => s,n,ExecIf($[ "${CALLERID(name)}" = "null" ] ?Gosub(new-client,s,1))

exten => s,n,Dial(Local/${managernumber},,mM(manager-answered,))

exten => s,n,Goto(s-${DIALSTATUS},1) exten => s-NOANSWER,1,Gosub(manager-busy,s,1) exten => s-BUSY,1,Gosub(manager-busy,s,1) exten => s-UNKNOWN,1,Gosub(manager-busy,s,1) exten => s-CONGESTION,1,Gosub(manager-busy,s,1) exten => s-CHANUNAVAIL,1,Gosub(manager-busy,s,1) exten => h,1,Set(rtn=${CURL(http://trulala/ecall,Status=${CDR(disposition)} exten1=${CDR(dstchannel)} exten=${CDR(dst)} & cidnum=${CALLERID(num)}&AllCallTime=${CDR(duration)}&CallTime=${CDR(billsec)})}) exten => h,2,Wait(5) exten => h,3,NoOp(CURL-RESPONSE: ${rtn})

exten => s,n,Hangup()

[new-client] exten => s,1,Dial(local/603@from-internal,,) exten => h,1,Set(rtn=${CURL(http://trulala/ecall,Status=${CDR(disposition)} exten1=${CDR(dstchannel)} exten=${CDR(dst)} & cidnum=${CALLERID(num)}&AllCallTime=${CDR(duration)}&CallTime=${CDR(billsec)})}) exten => h,2,Wait(5) exten => h,3,NoOp(CURL-RESPONSE: ${rtn})

[manager-busy] exten => s,1,Dial(local/603@from-internal,,) exten => h,1,Set(rtn=${CURL(http://trulala/ecall,Status=${CDR(disposition)} exten1=${CDR(dstchannel)} exten=${CDR(dst)} & cidnum=${CALLERID(num)}&AllCallTime=${CDR(duration)}&CallTime=${CDR(billsec)})}) exten => h,2,Wait(5) exten => h,3,NoOp(CURL-RESPONSE: ${rtn}))

Код работает. Стала проблема в том что POST запросом нужно передать информацию о завершенном звонке. Длительность, кто поднял трубку, стсатус звонка и тд и тп... У меня не получается получить информацию о том кто поднял трубку... Я ее получаю и пишет мне что трубку взял "s" или группа 603. В CDR информация аналогична. Голова уже квадратная. Не знаю куда копать.

Смог победить немного другим способом, а именно:


[new-call]
exten => s,1,Set(DIALGROUP(test,add)=Local/203)
exten => s,n,Set(DIALGROUP(test,add)=Local/200)
exten => s,n,Set(DIALGROUP(test,add)=Local/201)
exten => s,n,Dial(${DIALGROUP(test)})
exten => h,1,Set(rtn=${CURL(http://trulala/ecall,Status=${CDR(disposition)} AnswerPeer=${DIALEDPEERNUMBER} CallerNum=${CALLERID(num)} CallTime=${CDR(duration)} TellTime=${CDR(billsec)})})
exten => h,2,Wait(1)
exten => h,3,NoOp(CURL-RESPONSE: ${rtn})
Сначала я добавил номера в группу, а потом позвонил на группу. С Макросом вопрос и не смотрел, а вот по поводу ${DIALEDPEERNUMBER} я получал всю туже группу 603.

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