AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Глобальная переменная и несколько звонков

Newbies/FAQ Forum 7 сообщений -
#1

Глобальная переменная и несколько звонков


Добрый день.
Подскажите такой вопросик.
Если я создаю глобальную переменную в которую записываю CALLERID
exten=>s,n,Set(GLOBAL(CLIENT_NUMBER)=${CALLERID(num)})
она хранится на протяжении разговора а потом записывается в БД.
Если во время разговора приходит еще один звонок и выполняется этот же "екстеншен" старое знаечние переменной не затирается?

_________________
Пользователь неадекватен.
#2

а самому проверить и ответить на свой вопрос, не ?
откройте CLI, сетните verbose 3, совершите два вызова - получите ответ

и почитать: Asterisk Dialplan Globals
особенно :
Цитата:
Actually, Asterisk global variables are usually used not as variables but as constants.
#3

Код:
она хранится на протяжении разговора а потом записывается в БД.


Интересно, откуда вы это взяли?
И еще - не "пачкайте" память системы GLOBAL-переменными.

_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#4

Wapo @ Сб Мар 14, 2015 10:23 писал(а):
Код:
она хранится на протяжении разговора а потом записывается в БД.


Интересно, откуда вы это взяли?

Наверное я неправильно выразился, я не имел ввиду внутренние механизмы asteriska, просто у меня в диалплане значение в конце звонка записывается в БД.

_________________
Пользователь неадекватен.
#5

Еще попутно 1 вопрос не по теме.
Можно ли организовать очереди звонков с агентами, которые регистрируются с мобильных телефонов. Во всех доках только SIP, я так понимаю что это не реально, т.к невозможно будет отслеживать статус агента, или все таки реально?

_________________
Пользователь неадекватен.
#6

feofs писал(а):
Во всех доках только SIP

Да не правда.
В кач-ве Agent может выступать и Local channel => Advanced Queues
Цитата:
Using Local Channels

The use of Local channels as queue members is a popular way of executing parts of the dialplan and performing checks prior to dialing the actual agent’s device.
...
So, now we’ve passed our queue member to the context, and we can dial the device. However, because we’re using the Local channel as the queue member, the Queue() won’t necessarily know the state the call is in, especially when the Local channel is optimized out of the path (see https://wiki.asterisk.org/wiki/display/AST/Local+Channel+Modifiers for information about the /n modifier, which causes the Local channel to not be optimized out of the path). The queue will be monitoring the state of the Local channel, and not that of the device we really want to monitor.

Luckily, we can give the Queue() the actual device to monitor and associate that with the Local channel, so that the Local channel’s state is always that of the device we’ll end up calling.
#7

Да, спасибо разобрался. Пробую делать сейчас через Local.
_________________
Пользователь неадекватен.