Size: a a a

Asterisk Russian Community

2021 May 17

DQ

Dmitriy Q in Asterisk Russian Community
Парни, совсем идиотский кейс - как организовать рандомный вызов одного из 2 номеров? 😁 сперва подумал про функцию рандом, но чем и как обработать результат? проверки на четность не нашёл
источник

TZ

Trushakov Zheny in Asterisk Russian Community
А как зачем чётность?
источник

DQ

Dmitriy Q in Asterisk Russian Community
или просто взять RAND(2,3)? ))
источник

DQ

Dmitriy Q in Asterisk Russian Community
для задания условия
источник

TZ

Trushakov Zheny in Asterisk Russian Community
проще сделай. рандомо генеришь число от 1 до 100, потом его сравниваешь - больше 50 по одному номеру, меньше по другому
источник

DQ

Dmitriy Q in Asterisk Russian Community
тоже вариант, спасибо)
источник

RP

Roman Pertsev in Asterisk Russian Community
Ого, вот это проще! Мб сразу получать 1,2 где 1,2 exten или приоритет в этом контексте? Думается как бы так проще
источник

TZ

Trushakov Zheny in Asterisk Russian Community
а это как удобно , на большой выборке звонки распределяться будут 50 на 50 лучше
источник

TZ

Trushakov Zheny in Asterisk Russian Community
идею то подал, дальше сами пробуйте
источник

RP

Roman Pertsev in Asterisk Russian Community
а потом у него появится 3-4-10 номеров и каждый раз переделывать схему и что-то там высчитывать, такое себе
источник

TZ

Trushakov Zheny in Asterisk Russian Community
в начальном ТЗ не было про 3-4-10 телефонов
источник

TZ

Trushakov Zheny in Asterisk Russian Community
там вначале вон четность хотели использовать.
источник

RP

Roman Pertsev in Asterisk Russian Community
ну и на счет 50 на 50 лучше тоже такое себе утверждение, что значит лучше?
источник

RP

Roman Pertsev in Asterisk Russian Community
на больших числах, как раз таки, будет все идентично
источник

IZ

Ivan Zagorodko in Asterisk Russian Community
источник

k

kerberos in Asterisk Russian Community
Добрый вечер, коллеги.
Хочу добавить автоматическую пересылку входящего звонка, если ранее на данный номер звонили изнутри и не дозвонились (занято, сброс).
Гляньте, плиз, на корректность с т.з. написания самого контекста правила (не mysql запрос):
exten => s,1,Set(connid="")
exten => s,n,MYSQL(Connect connid localhost DynamicRoute password asteriskcdrdb)
exten => s,n,GotoIf($["${connid}" = ""]?,1,1)
exten => s,n,MYSQL(Query resultid ${connid} SELECT SUBSTRING(channel,7,4) AS Initial FROM cdr WHERE (`dst`='${CALLERID(num)}' OR concat('88212',`dst`)='${CALLERID(num)}') AND (`disposition`='NO ANSWER' OR disposition`='BUSY') AND `lastapp`='DIAL' AND `dcontext = 'from-internal' AND TIMESTAMPDIFF(MINUTE,calldate,NOW()) < 90 ORDER BY calldate DESC LIMIT 1)
exten => s,n,MYSQL(Fetch fetchid ${resultid} dynroute)
exten => s,n,MYSQL(Clear ${resultid})
exten => s,n,MYSQL(Disconnect ${connid})
exten => s,n,Goto(from-did-direct,"${dynroute}",1)
exten => 1,1,Goto(dynroute-3,s,1)
exten => 1,n,Hangup
источник

Е

Евгений in Asterisk Russian Community
Мой пример (точно рабочий в FreePBX)
[we-called-you]
exten => s,1,NoOp(== Не звонили мы тебе часом, дружок? ==)
same => n,Set(LAST_SRC=0)
same => n,Set(ABONENT_CALLERID=${CALLERID(num)})

same => n,ExecIf($[${ABONENT_CALLERID:-10}=4999562190]?Set(ABONENT_CALLERID=500000) ;Такси Яндекс
same => n,ExecIf($[${ABONENT_CALLERID:-10}=3522630126]?Set(ABONENT_CALLERID=900000) ;Такси Максим
same => n,ExecIf($[${ABONENT_CALLERID:-10}=3452550099]?Set(ABONENT_CALLERID=900000) ;Такси Максим

same => n,MySQL(connect connid 127.0.0.1 root password asteriskcdrdb utf8)
same => n,MySQL(query resultid ${connid} SELECT src,uniqueid,direct_incoming FROM asteriskcdrdb.cdr WHERE calldate >= NOW() - INTERVAL 1 DAY AND dst LIKE "%${ABONENT_CALLERID:-10}" ORDER BY uniqueid DESC LIMIT 1)
same => n,MySQL(Fetch fetchid ${resultid} LAST_SRC LAST_UNIQUEID DIRECT_INCOMING)
same => n,GotoIf($[${LEN(${LAST_SRC})} = 3]?:SKIP)
same => n,GotoIf($["${DIRECT_INCOMING}" = "0"]?:SKIP)
same => n,MySql(clear ${resultid})
same => n,MYSQL(Query resultid ${connid} UPDATE asteriskcdrdb.cdr SET direct_incoming = 1 WHERE uniqueid=${LAST_UNIQUEID})
same => n,MySql(clear ${resultid})
same => n,MySql(disconnect ${connid})
same => n,NoOp(== Мы звонили этому абоненту, он нам перезванивает, соединяем с ${LAST_SRC:-3} ==)
same => n,Set(CDR(userfield)= ${CDR(userfield)} Абонент перезвонил)
same => n,Dial(Local/${LAST_SRC:-3}@from-internal,60)
same => n,Hangup()

same =>  n(SKIP),NoOp(== Похоже, мы тебе не звонили ==)
same =>        n,Return()
источник

O

Oleg in Asterisk Russian Community
а в asterisk не появилась возможность в redis делать set/get?
источник

TZ

Trushakov Zheny in Asterisk Russian Community
Лучше и лучше. Был опыт использования. Брали большие значения
источник

RP

Roman Pertsev in Asterisk Russian Community
Аргументный аргумент, тогда, по этой логике, еще лучше будет генерить от 1 до 1.000 или до 10.000 и потом сравнивать значение больше половины или меньше
источник