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

Можно ли снять трубку на хардфоне после Dial программно?(часть 2)

1

Начало http://asterisk-support.ru/question/44644/mozhno-li-sniat-trubku-na-khardfone-posle-dial

Есть задача. При входящем звонке нажать на экране кнопку Ответить, и в этот момент телефон снимает трубку(громкая связь или гарнитура).

Как я понял SIPAddHeader можно устанавливать только до того как телефон начал звонить.

При оригинации звонка, мы просто устанавливаем хидер через AMI и все работает, но при входящем не понятно как сделать. Пока предполагаю переводить вызов в контекст примерно такого содержания:

exten => _*XXX*,n,SIPAddHeader(“Call-Info:; answer-after=0″)
exten => _*XXX*,n,Dial(SIP/${SIPACCOUNT})

Может есть более красивые решения?

upd. С данным контекстом неприятная проблема. Все дальнейшие переводы с SIP/${SIPACCOUNT} на другие телефоны вызывают автоподъем и на них. Попробовал сделать так:

 exten => _*XXX*,n,SIPAddHeader(Call-Info:\;answer-after=0)
 exten => _*XXX*,n,Dial(SIP/${SIPACCOUNT},20,tTcM(miko-clear-auto-answer))

[macro-miko-clear-auto-answer]
exten => s,1,SIPRemoveHeader()

В verbose вижу что SIPAddHeader устанавливается для изначального канала, а SIPRemoveHeader для канала SIP/${SIPACCOUNT}, но все дальнейшие переадресации вызывают автоподъем у коллег на телефонах. Проблема с безусловным переводом.

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

спросил 2013-09-12 17:37:15 +0400

jorikfon Gravatar jorikfon flag of Russian Federation
130 9 1 10
http://www.telefon1c.ru/

обновил 2013-09-12 17:37:44 +0400

Comments

В 11 астериске появились https://wiki.asterisk.org/wiki/display/AST/Pre-dial+handlers+Specification можно на нужном канале перед вызовом делать действия, но у нас 10 и 1.6 астериск

jorikfon ( 2013-09-12 17:51:05 +0400 )редактировать

оригинация и входящий вызов - одно и то же. Что Вам мешает разнести контексты для вызовов ?

zzuz ( 2013-09-12 18:41:55 +0400 )редактировать

zzuz не совсем понятно :(

jorikfon ( 2013-09-17 13:18:21 +0400 )редактировать

3 Ответа

2

SIP header сняли средствами AMI. Установить переменную канала SIPADDHEADER01 в пустое значение. Во время первого события bridge.

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

ответил 2013-09-17 13:26:49 +0400

boffart Gravatar boffart flag of Russian Federation
61 3 2 5
http://www.telefon1c.ru/

Comments

Ответил коллега, я не смог сам себе ответить. :) Через AMI можно управлять переменными любого канала, и важный момент, что после установки хидера, ему присваивается порядковый номер. В данном случае 01

jorikfon ( 2013-09-17 13:29:59 +0400 )редактировать
0

Установить переменную канала SIPADDHEADER01 в пустое значение. jorikfon а как удалось это сделать? Такая же проблема, входящий звонок с 111 на 222 приходит с заголовком "Call-Info: answer-after=0". В AMI пробую снять заголовок при редиректе на 333:

Action: Redirect
Channel: SIP/111-0002c1d9
Context: from-phones
Exten: 333
Priority: 1
ActionID: 7
Variable: SIPADDHEADER01=

Редирект проходит, но заголовок не снимается, телефон (333) автоматом снимает трубку.

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

ответил 2015-10-07 11:49:41 +0400

Kjohn Gravatar Kjohn
1 1

Comments

Это ответ? Не поздновато ли ?

zzuz ( 2015-10-07 12:37:08 +0400 )редактировать

Нет, это был вопрос - как сделать :-) Вопрос снят - SIPADDHEADER01 нормально сбрасывается через акцию SetVar перед акцией Redirect

Kjohn ( 2015-10-07 12:55:09 +0400 )редактировать
0

Попробуйте задать __TRANSFER_CONTEXT, и в нем указать SIPRemoveHeader(). А выполнить какое либо действие на канале звонящего не реально... Где-то в астериск баг трекере писали что считают это не правильным. Сам столкнулся с проблемой, когда надо было менять MOH class после поднятия трубки...

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

ответил 2013-09-12 18:42:46 +0400

Sarumjnauch Gravatar Sarumjnauch flag of Ukraine
185 5 6
http://thirdlane.com/

Comments

Частично работает, но не всегда вызов приходит в этот контекст, пои использовании Local каналов мы опять вернулись к проблеме.

jorikfon ( 2013-09-17 13:19:11 +0400 )редактировать

/n добавляете?

Sarumjnauch ( 2013-09-19 13:35:43 +0400 )редактировать

Да, пробовали, сейчас он и установлен. Не помню точно какие выскочили грабли, в итоге сделали через AMI как указано выше.

jorikfon ( 2013-09-19 16:32:33 +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 ленту новостей

Статистика

Задан: 2013-09-12 17:37:15 +0400

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

Обновлен: Oct 07 '15

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