<p dir="ltr">Em 17/06/2013 15:52, "Daniel Feliciano" <<a href="mailto:danielfelicianoseg@hotmail.com">danielfelicianoseg@hotmail.com</a>> escreveu:<br>
><br>
> Boa tarde lista, <br>
> estou com a seguinte situacao, teria a principio 4 linhas onde posso estar recebendo ligacao em qualquer delas simultaneas, porem precisaria que quando alguem ligasse para um numero, automaticamente bloqueasse as outras 3 linhas até que a linha em uso fosse liberada.<br>
> <br>
> Resumindo, apesar de ter 4 linhas, so poderia receber uma ligacao por vez, independente do tronco. É uma situacao atipica mesma.</p>
<p dir="ltr">Olá!</p>
<p dir="ltr">Se colocar "call-limit=1" no sip.conf, é possível saber se as linhas estão sendo usadas pela variável ,Set(CALLS=$[${SIPPEER(<LINHA 1 SIP>:curcalls)}+ ${SIPPEER(<LINHA 2 SIP>:curcalls)}+${SIPPEER(<LINHA 3 SIP>:curcalls)}+ ${SIPPEER(<LINHA 4 SIP>:curcalls)}]), mas isso seria interessante se fossem todas linhas SIP e quisesse saber qual linha está ocupada. Então no contexto faça GotoIf($[${CALLS} > 1]?ocupado) antes do dial para o ramal.</p>
<p dir="ltr">Exemplo:<br>
same => n, Set(CALLS=$[${SIPPEER(<LINHA 1 SIP>:curcalls)}+ ${SIPPEER(<LINHA 2 SIP>:curcalls)}+${SIPPEER(<LINHA 3 SIP>:curcalls)}+ ${SIPPEER(<LINHA 4 SIP>:curcalls)}])<br>
same => n,GotoIf($[${CALLS} > 1]?ocupado)<br>
same => n,Dial(SIP/<ramal>...)<br>
same => n,Hangup()<br>
same => n(ocupado),PlayBack(vm-unavailble)<br>
same => n,Set(DIALSTATUS=CHANUNAVAIL)<br>
same => n,Hangup()<br><br></p>
<p dir="ltr">Ou ainda, antes do dial para o ramal no contexto de entrada, defina o grupo é verifique as chamadas do grupo.</p>
<p dir="ltr">Exemplo:<br>
same => n,Set(GROUP()=entrada)<br>
same => n,GotoIf($[${GROUP_COUNT(entrada)} > 1]?ocupado)<br>
same => n,Dial(SIP/<ramal>...)<br>
same => n,Hangup()<br>
same => n(ocupado),PlayBack(vm-unavailble)<br>
same => n,Set(DIALSTATUS=CHANUNAVAIL)<br>
same => n,Hangup()</p>
<p dir="ltr">[]'s<br>
Junior Polegato</p>