Page 580 - Asterisk™: The Future of Telephony
P. 580

exten => valid_login,n(set_login_status),NoOp()
               exten => valid_login,n,Set(HOTDESK_STATUS(${E})=1\,${LOCATION})

               exten => valid_login,n,GotoIf($[${ODBCROWS} < 1]?error,1)
               exten => valid_login,n,Playback(agent-loginok)
               exten => valid_login,n,Hangup()

               exten => logout_login,1,NoOp()
               exten => logout_login,n,Set(ROW_COUNTER=0)
               exten => logout_login,n,While($[${ROW_COUNTER} < ${USERS_LOGGED_IN}])
               exten => logout_login,n,Set(WHO=${HOTDESK_LOGGED_IN_USER(${LOCATION},${ROW_COUNTER})})
               exten => logout_login,n,Set(HOTDESK_STATUS(${WHO})=0)
               exten => logout_login,n,Set(ROW_COUNTER=$[${ROW_COUNTER} + 1])
               exten => logout_login,n,EndWhile()
               exten => logout_login,n,Goto(valid_login,set_login_status)
               exten => logout,1,NoOp()
               exten => logout,n,Set(HOTDESK_STATUS(${E})=0)
               exten => logout,n,GotoIf($[${ODBCROWS} < 1]?error,1)
               exten => logout,n,Playback(silence/1&agent-loggedoff)
               exten => logout,n,Hangup()

               exten => login_fail,1,NoOp()
               exten => login_fail,n,Playback(silence/1&login-fail)
               exten => login_fail,n,Hangup()

               exten => error,1,NoOp()
               exten => error,n,Playback(silence/1&connection-failed)
               exten => error,n,Hangup()

               exten => invalid_user,1,NoOp()
               exten => invalid_user,n,Verbose(1|Hot Desk extension ${E} does not exist)
               exten => invalid_user,n,Playback(silence/2&invalid)
               exten => invalid_user,n,Hangup()
               include => hotdesk_outbound

               [hotdesk_outbound]
               exten => _X.,1,NoOp()
               exten => _X.,n,Set(LOCATION=${CUT(CHANNEL,/,2)})
               exten => _X.,n,Set(LOCATION=${CUT(LOCATION,-,1)})
               exten => _X.,n,Set(WHO=${HOTDESK_PHONE_STATUS(${LOCATION})})
               exten => _X.,n,GotoIf($[${ISNULL(${WHO})}]?no_outgoing,1)
               exten => _X.,n,Set(${WHO}_CID_NAME=${HOTDESK_INFO(cid_name,${WHO})})
               exten => _X.,n,Set(${WHO}_CID_NUMBER=${HOTDESK_INFO(cid_number,${WHO})})
               exten => _X.,n,Set(${WHO}_CONTEXT=${HOTDESK_INFO(context,${WHO})})
               exten => _X.,n,Goto(${${WHO}_CONTEXT},${EXTEN},1)

               [international]
               exten => _011.,1,NoOp()
               exten => _011.,n,Set(E=${EXTEN})
               exten => _011.,n,Goto(outgoing,call,1)


               552 | Appendix G: An Example of func_odbc
   575   576   577   578   579   580   581   582   583   584   585