VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

показать номер звонящего при переводе звонка asterisk

Обо всем касательно FreePBX, MetPBX, TrixBox, Elastix, AstPBX и всех других дистрибутивов

Модераторы: april22, Zavr2008

Аватара пользователя
sorgchik
Сообщения: 183
Зарегистрирован: 31 авг 2010, 21:14

показать номер звонящего при переводе звонка asterisk

Сообщение sorgchik »

подскажите как сделать, чтобы при переводе звонка с секретаря на внутренного абонента, у него в свою очередь было видно, что это переведенный звонок. На данный момент, он просто видит внутренний номер секретаря.
Вид примерно такой: 100:+78121234567
где 100 - это кто перевел
+78121234567 - номер внешнего вызова
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: показать номер звонящего при переводе звонка asterisk

Сообщение zzuz »

Ну так сохраните номер звонящего и подставляйте его в номеру переводящего.
Линия24 - Системы Массового Телефонного Обслуживания
ded
Сообщения: 15626
Зарегистрирован: 26 авг 2010, 19:00

Re: показать номер звонящего при переводе звонка asterisk

Сообщение ded »

Используйте Blind transfer, тогда номер звонящего всегда виден.
Не пытайтесь первым делом создать новый топик, вместо того, чтобы поискать рядом. Смотрите ветку с теми же вопросами. http://forum.asterisk.ru/viewtopic.php?f=3&t=1108
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: показать номер звонящего при переводе звонка asterisk

Сообщение Vlad1983 »

во входящем контексте запоминаем CID

Код: Выделить всё

exten => _3532XXXXXX,1,Set(__CID=${CALLERID(number)}) 
потом скачем куда надо

если нет отдельного контекста для трансфера используем примерно такой код в контексте юзверей

Код: Выделить всё

exten => _[1-589]XX,1,ExecIf($[ ${LEN(${BLINDTRANSFER})} > 0 ]?Set(TRANSFERUSER=${BLINDTRANSFER}) )
exten => _[1-589]XX,n,ExecIf($[ ${LEN(${TRANSFERERNAME})} > 0 ]?Set(TRANSFERUSER=${TRANSFERERNAME}) )
exten => _[1-589]XX,n,ExecIf($[ ${LEN(${TRANSFERUSER})} > 0 ]?Set(TRANSFERUSER=${CUT(TRANSFERUSER,-,1)}) )
exten => _[1-589]XX,n,ExecIf($[ ${LEN(${TRANSFERUSER})} > 0 ]?Set(TRANSFERUSER=${CUT(TRANSFERUSER,\/,2)}) )
exten => _[1-589]XX,n,ExecIf($[ "foo${TRANSFERUSER}" = "foo" ]?Set(__CID=${CALLERID(number)}) )
exten => _[1-589]XX,n,ExecIf($[ ${LEN(${TRANSFERUSER})} > 0 ]?Set(CALLERID(number)=${CID}-${TRANSFERUSER}) )
exten => _[1-589]XX,n,ExecIf($[ "foo${TRANSFERUSER}" != "foo" ]?Set(CALLERID(name)="ORIGINAL:${CID} TRANSFER:${TRANSFERUSER}") )
exten => _[1-589]XX,n,Dial(SIP/${EXTEN},,tT)
если отдельный контекст для трансфера можно немного упростить
ЛС: @rostel
ded
Сообщения: 15626
Зарегистрирован: 26 авг 2010, 19:00

Re: показать номер звонящего при переводе звонка asterisk

Сообщение ded »

Можно расширить стандартный контекст для трансфера from-internal-xfer
где есть вложения
Include => 'from-internal-custom'
вот там и разместить
exten => _[1-589]XX,1,ExecIf($[ ${LEN(${BLINDTRANSFER})} > 0 ]?Set(TRANSFERUSER=${BLINDTRANSFER}) )
и другие..
van
Сообщения: 4
Зарегистрирован: 03 сен 2014, 15:34

Re: показать номер звонящего при переводе звонка asterisk

Сообщение van »

Добрый день! Мне наверное сюда!
Ситуация следующая - стоял Asterisk + FreePBX, его обслуживал спец по IP - телефонии...
Спец уволился, оборудование морально устарело, и правительство организации, где я работаю, дает задачу срочно поднять новый сервер!
Задача дана мне, а я с Asterisk-ом на уровне - слышал от спеца, когда тот еще работал!
К чему я все это - к тому, что я совсем не профессионал и прошу сразу не пинать!
Интернет и правда вещь могучая и с его помощью сервер поднят - чистый Asterisk 11.11.0 без какой-либо морды с абы каким dial-планом, но работает вроде все, кроме как обычно того, к чему привыкли все...

Проблема №1:
Сразу приведу кусок плана:
...
exten => s,n,Wait(7)
exten => s,n,Dial(SIP/102,,tm)
Если абонент при прослушивании интерактивного меню не нажал ни одну из предложенных цифр, звонок через 7 секунд отправляется на секретаря, у секретаря номер определяется, далее секретарь переводит (именно attended transfer по нажатию *2) звонок на нужный внутренний номер...
Раньше на FreePBX тот, на КОГО переводят, видел на своем дисплее номер того, КТО переводит! Т.е. в данном случае внутренний номер должен был увидеть, что ему звонит 102... Вместо этого сейчас на дисплеи внутренних абонентов приходит экстеншн - s...

Сразу оговорюсь:
- blind transfer не нужен, все менеджеры переводят звонки по attended transfer, разъясняя по ходу тому, кому переводят, суть этого перевода
- sendrpid=yes в sip-номерах установлен
- опция o в dial-ах дает по сути то же, что и предыдущий пункт (мне по крайней мере)
- ветку http://forum.asterisk.ru/viewtopic.php?f=3&t=1108 уже до дыр протер, но на сколько понял, не мое
- не отправляйте только в библиотеку, я оттуда не вылезаю, информации куча, времени мало!

Мне не нужен изначальный номер на выходе, мне нужен на моем дисплее внутренний номер того, кто переводит звонок...

Проблема №2:
Сразу приведу кусок плана:
...
exten => s,1,Background(/var/lib/asterisk/moh/voicemail/voicemenu)
exten => 2,1,Queue(2000,tm)
Звонящий попадает на интерактивное меню, в котором, если нажмет цифру 2, отправляется в очередь 2000... У первого телефона, принявшего звонок, номер соответственно определяется, далее история повторяется - тот, на кого переводят, видит на своем дисплее не внутренний номер переводящего, а ектеншн - asterisk...

Если напрямую набрать номер внутреннего абонента, все переводы проходят красиво!
Хотя бы ссылочкой помогите!
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: показать номер звонящего при переводе звонка asterisk

Сообщение Vlad1983 »

читаем топик
как сейчас помню здесь есть решение
ЛС: @rostel
ded
Сообщения: 15626
Зарегистрирован: 26 авг 2010, 19:00

Re: показать номер звонящего при переводе звонка asterisk

Сообщение ded »

van писал(а):- не отправляйте только в библиотеку, я оттуда не вылезаю, информации куча, времени мало!
Для тех, у кого времени мало, а срочно нужно - есть платные специалисты, интеграторы (не буду показывать пальцем).
Вы совсем не понимаете что такое exten => вообще, и exten => s - в частности.
exten => s применяется только в макросах диалплана. Зачем Вы начали сами пытаться писать диалплан, если не понимаете что делаете?
Вам - читать и читать ещё.
van
Сообщения: 4
Зарегистрирован: 03 сен 2014, 15:34

Re: показать номер звонящего при переводе звонка asterisk

Сообщение van »

Буду искать по топику еще... Читать и читать - согласен... Говорю же, с астериском знаком только месяц! Задание дали с пометкой - нужно еще вчера!!! Приходится делать так, как получается и как могу, главный аргумент - чтобы работало! Спасибо за советы!
van
Сообщения: 4
Зарегистрирован: 03 сен 2014, 15:34

Re: показать номер звонящего при переводе звонка asterisk

Сообщение van »

Собственно это и решило мой вопрос! Был слеп, виноват :oops: ! Благодарю за помощь!)
Vlad1983 писал(а):во входящем контексте запоминаем CID

Код: Выделить всё

exten => _3532XXXXXX,1,Set(__CID=${CALLERID(number)}) 
потом скачем куда надо

если нет отдельного контекста для трансфера используем примерно такой код в контексте юзверей

Код: Выделить всё

exten => _[1-589]XX,1,ExecIf($[ ${LEN(${BLINDTRANSFER})} > 0 ]?Set(TRANSFERUSER=${BLINDTRANSFER}) )
exten => _[1-589]XX,n,ExecIf($[ ${LEN(${TRANSFERERNAME})} > 0 ]?Set(TRANSFERUSER=${TRANSFERERNAME}) )
exten => _[1-589]XX,n,ExecIf($[ ${LEN(${TRANSFERUSER})} > 0 ]?Set(TRANSFERUSER=${CUT(TRANSFERUSER,-,1)}) )
exten => _[1-589]XX,n,ExecIf($[ ${LEN(${TRANSFERUSER})} > 0 ]?Set(TRANSFERUSER=${CUT(TRANSFERUSER,\/,2)}) )
exten => _[1-589]XX,n,ExecIf($[ "foo${TRANSFERUSER}" = "foo" ]?Set(__CID=${CALLERID(number)}) )
exten => _[1-589]XX,n,ExecIf($[ ${LEN(${TRANSFERUSER})} > 0 ]?Set(CALLERID(number)=${CID}-${TRANSFERUSER}) )
exten => _[1-589]XX,n,ExecIf($[ "foo${TRANSFERUSER}" != "foo" ]?Set(CALLERID(name)="ORIGINAL:${CID} TRANSFER:${TRANSFERUSER}") )
exten => _[1-589]XX,n,Dial(SIP/${EXTEN},,tT)
если отдельный контекст для трансфера можно немного упростить
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH