Asterisk AgentLogoff event triggered

Hi Team,

We are setting up a system, where there are two servers with asterisk 13.8 cert2 version installed on both. We are logging in users to one asterisk using AgentLogin() function and then switching the user to another asterisk, with the use of following code-

(Code on 1st server for transferring to another server)
[agent-remote-transfer]
exten => _X.,1,Verbose(Transferring Agent - {EXTEN} to {ToEnviornment})
same => n,Set(Env={ToEnvironment}) same => n,Set(Number={EXTEN})
same => n,Dial(PJSIP/{Number}@{Env},b(transferhandler^addheader^1[((FromEnvironment),(ToEnvironment))]))
;same => n,Dial(PJSIP/{Number}@Sandbox,,b(transferhandler^addheader^1[((FromEnvironment),(ToEnvironment))])) same => n,Verbose(Dial Status: {DIALSTATUS})
same => n,Hangup()

[transferhandler]
exten => addheader,1,Verbose(-------{FromEnvironment}----------{ToEnvironment})
same => n,Set(PJSIP_HEADER(add,X-FromEnvironment)={FromEnvironment}) same => n,Set(PJSIP_HEADER(add,X-ToEnvironment)={ToEnvironment})
same => n,Return()

(Code on 2nd server to log in user)
[login-agent-remote]
exten => _X.,1,Wait(3)
same => n,Set(Fromenv={PJSIP_HEADER(read,FromEnvironment)}) same => n,Set(Toenv={PJSIP_HEADER(read,ToEnvironment)})
same => n,Set(SHARED(PLAY_BEEP,{CHANNEL})=2) same => n,Verbose(-----{Fromenv}-----{Toenv}---) same => n,Set(CASAGENT={EXTEN})
same => n,Verbose(Agent transferred from {EXTEN:6}) same => n,AgentLogin({CASAGENT},s)
;same => n,Set(SHARED(PLAY_BEEP,{CHANNEL})=2) same => n,Verbose({CASAGENT} AGENT_STATUS is ${AGENT_STATUS})
same => n,Hangup()

The issue we are facing is that while the context Remote -transfer, for transferring the user to another asterisk’ ,is called, the agent is first logged off from first server, and then this context is executed, and after the user gets logged in on 2nd server, it automaticaaly logs out after 5 to 6 s. The AgentLogOff event is received from 1st asterisk, and this scenario occurs very few number of times, other times user remains logged in on both the servers.

Can you please help me with the scenarios that may cause AgentLogOff event to get triggered?

Hi,

Can anyone help me with this?

  1. Please markup the dialplan properly for the forum (as preformatted text).

  2. Please provide logs showing the reason for the call disconnection.

Server1(from which agent is being switched from)-

[C-000000cf] bridge_channel.c: Channel PJSIP/Xo_main-0000004a left ‘holding_bridge’ agent_hold-bridge
VERBOSE[22556][C-000000cf] app_agent_pool.c: Agent ‘627845’ logged out. Logged in for 1070 seconds.
VERBOSE[22556][C-000000cf] pbx.c: Spawn extension (agent-remote-transfer, 627845, 1) exited non-zero on ‘PJSIP/Xo_main-0000004a’
VERBOSE[22556][C-000000cf] pbx.c: Executing [627845@agent-remote-transfer:1] Verbose(“PJSIP/Xo_main-0000004a”, "Transferring Agent - 627845 to ") in new stack
VERBOSE[22556][C-000000cf] app_verbose.c: Transferring Agent - 627845 to
VERBOSE[22556][C-000000cf] pbx.c: Executing [627845@agent-remote-transfer:2] Set(“PJSIP/Xo_main-0000004a”, “Env=Engine2”) in new stack
VERBOSE[22556][C-000000cf] pbx.c: Executing [627845@agent-remote-transfer:3] Set(“PJSIP/Xo_main-0000004a”, “Number=627845”) in new stack
VERBOSE[22556][C-000000cf] pbx.c: Executing [627845@agent-remote-transfer:4] Dial(“PJSIP/Xo_main-0000004a”, “PJSIP/627845@Engine2,b(transferhandler^addheader^1[((FromEnvironment),(ToEnvironment))])”) in new stack
VERBOSE[22556][C-000000cf] app_stack.c: PJSIP/Engine2-0000009e Internal Gosub(transferhandler,addheader,1[((FromEnvironment),(ToEnvironment))) start
VERBOSE[22556][C-000000cf] pbx.c: Executing [addheader@transferhandler:1] Verbose(“PJSIP/Engine2-0000009e”, “-----------------”) in new stack
VERBOSE[22556][C-000000cf] app_verbose.c: -----------------
VERBOSE[22556][C-000000cf] pbx.c: Executing [addheader@transferhandler:2] Set(“PJSIP/Engine2-0000009e”, “PJSIP_HEADER(add,X-FromEnvironment)=”) in new stack
[2019-12-09 08:48:41.433] VERBOSE[22556][C-000000cf] pbx.c: Executing [addheader@transferhandler:3] Set(“PJSIP/Engine2-0000009e”, “PJSIP_HEADER(add,X-ToEnvironment)=”) in new stack
VERBOSE[22556][C-000000cf] pbx.c: Executing [addheader@transferhandler:4] Return(“PJSIP/Engine2-0000009e”, “”) in new stack
VERBOSE[22556][C-000000cf] app_stack.c: Spawn extension (login-agent-remote, 627845, 1) exited non-zero on ‘PJSIP/Engine2-0000009e’
VERBOSE[22556][C-000000cf] app_stack.c: PJSIP/Engine2-0000009e Internal Gosub(transferhandler,addheader,1[((FromEnvironment),(ToEnvironment))) complete GOSUB_RETVAL=
VERBOSE[22556][C-000000cf] app_dial.c: Called PJSIP/627845@Engine2

Server2(to which agent is being switched to)-

[627845@login-agent-remote:2] Set(“PJSIP/Engine1-00000041”, “Fromenv=”) in new stack
VERBOSE[23261][C-000000f7] pbx.c: Executing [627845@login-agent-remote:3] Set(“PJSIP/Engine1-00000041”, “Toenv=”) in new stack
VERBOSE[23261][C-000000f7] pbx.c: Executing [627845@login-agent-remote:4] Set(“PJSIP/Engine1-00000041”, “SHARED(PLAY_BEEP,PJSIP/Engine1-00000041)=2”) in new stack
VERBOSE[23261][C-000000f7] pbx.c: Executing [627845@login-agent-remote:5] Verbose(“PJSIP/Engine1-00000041”, “-------------”) in new stack
VERBOSE[23261][C-000000f7] app_verbose.c: -------------
VERBOSE[23261][C-000000f7] pbx.c: Executing [627845@login-agent-remote:6] Set(“PJSIP/Engine1-00000041”, “CASAGENT=627845”) in new stack
VERBOSE[23261][C-000000f7] pbx.c: Executing [627845@login-agent-remote:7] Verbose(“PJSIP/Engine1-00000041”, "Agent transferred from ") in new stack
VERBOSE[23261][C-000000f7] app_verbose.c: Agent transferred from
VERBOSE[23261][C-000000f7] pbx.c: Executing [627845@login-agent-remote:8] AgentLogin(“PJSIP/Engine1-00000041”, “627845,s”) in new stack

app_agent_pool.c: Agent ‘627845’ logged in (format ulaw/ulaw)

app_agent_pool.c: Agent ‘627845’ logged out. Logged in for 6 seconds.
[2019-12-09 08:48:50.401] VERBOSE[23261][C-000000f7] pbx.c: Spawn extension (login-agent-remote, 627845, 8) exited non-zero on ‘PJSIP/Engine1-00000041’

(Code on 1st server for transferring to another server)
[agent-remote-transfer]
exten => _X.,1,Verbose(Transferring Agent - {EXTEN} to {ToEnviornment})
        same => n,Set(Env={ToEnvironment}) same => n,Set(Number={EXTEN})
        same => n,Dial(PJSIP/{Number}@{Env},b(transferhandler^addheader^1[((FromEnvironment),(ToEnvironment))]))


[transferhandler]
exten => addheader,1,Verbose(-------{FromEnvironment}----------{ToEnvironment})
        same => n,Set(PJSIP_HEADER(add,X-FromEnvironment)={FromEnvironment}) same => n,Set(PJSIP_HEADER(add,X-ToEnvironment)={ToEnvironment})
        same => n,Return()

(Code on 2nd server to log in user)
[login-agent-remote]
exten => _X.,1,Wait(3)
        same => n,Set(Fromenv={PJSIP_HEADER(read,FromEnvironment)}) same => n,Set(Toenv={PJSIP_HEADER(read,ToEnvironment)})
        same => n,Set(SHARED(PLAY_BEEP,{CHANNEL})=2) same => n,Verbose(-----{Fromenv}-----{Toenv}---) same => n,Set(CASAGENT={EXTEN})
        same => n,Verbose(Agent transferred from {EXTEN:6}) same => n,AgentLogin({CASAGENT},s)
        same => n,Set(SHARED(PLAY_BEEP,{CHANNEL})=2) same => n,Verbose({CASAGENT} AGENT_STATUS is ${AGENT_STATUS})
        same => n,Hangup()

Please mark up your logs and dialplan correctly, using the </> button. (This continues to be a problem with nearly every new poster, I think a big warning banner is needed.)

Your logging level is not high enough to determine why the agent was logged out. Turn it up. You may also need to turn on PJSIP protocol logging.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.