|
|
@@ -226,21 +226,25 @@ async def celCallback(mngr: Manager, msg: Message):
|
|
|
uid = firstMessage.LinkedID
|
|
|
if ((msg.Application == 'Queue') and
|
|
|
(msg.EventName == 'APP_START') and
|
|
|
- (firstMessage.Context == 'from-internal')):
|
|
|
+ (firstMessage.Context == 'from-internal')) and
|
|
|
+ (cid is not None) and (len(cid) < 7):
|
|
|
app.cache['cel_calls'][lid]['groupCall'] = True
|
|
|
if ((msg.Application == 'Queue') and
|
|
|
(msg.EventName == 'APP_END') and
|
|
|
(firstMessage.Context == 'from-internal')):
|
|
|
app.cache['cel_calls'][lid]['groupCall'] = False
|
|
|
- if (cid is not None) and (len(cid) < 7): #for local calls only
|
|
|
- if msg.Context in ('from-queue'):
|
|
|
+ if (firstMessage.get('groupCall',False)): #for local calls only
|
|
|
+ if msg.Channel.startswith('PJSIP/'):
|
|
|
+ called = msg.CallerIDnum
|
|
|
+ if called in app.cache['usermap']:
|
|
|
+ called = app.cache['usermap'][called]
|
|
|
if ((msg.EventName == 'CHAN_START') or
|
|
|
((msg.EventName == 'CHAN_END') and ('answered' not in firstMessage))):
|
|
|
old_count = len(app.cache['cel_calls'][lid]['current_channels'])
|
|
|
- channel = msg.Channel.split(';')[0]
|
|
|
+ channel = msg.Channel
|
|
|
if msg.EventName == 'CHAN_START': #start dial
|
|
|
- app.cache['cel_calls'][lid]['current_channels'][channel] = msg.Exten
|
|
|
- app.cache['cel_calls'][lid]['all_channels'][channel] = msg.Exten
|
|
|
+ app.cache['cel_calls'][lid]['current_channels'][channel] = called
|
|
|
+ app.cache['cel_calls'][lid]['all_channels'][channel] = called
|
|
|
else: #end dial
|
|
|
app.cache['cel_calls'][uid]['current_channels'].pop(channel, False)
|
|
|
if old_count != len(app.cache['cel_calls'][lid]['current_channels']):
|
|
|
@@ -251,20 +255,19 @@ async def celCallback(mngr: Manager, msg: Message):
|
|
|
if ('WebCallId' in app.cache['cel_calls'][msg.linkedid]):
|
|
|
_cb['WebCallId'] = app.cache['cel_calls'][msg.linkedid]['WebCallId']
|
|
|
reply = await doCallback('groupRinging', _cb)
|
|
|
- if ((msg.EventName == 'ANSWER') and
|
|
|
+ if ((msg.EventName == 'ANSWER') and
|
|
|
(msg.Application == 'AppDial') and
|
|
|
- firstMessage.get('groupCall',False) and
|
|
|
(lid in app.cache['cel_calls'])):
|
|
|
- called = msg.Exten
|
|
|
- app.cache['cel_calls'][lid]['answered'] = True
|
|
|
- _cb = {'user': called,
|
|
|
+ #called = msg.Exten
|
|
|
+ app.cache['cel_calls'][lid]['answered'] = True
|
|
|
+ _cb = {'user': called,
|
|
|
'users': list(app.cache['cel_calls'][uid]['all_channels'].keys()),
|
|
|
'state': 'group_answer',
|
|
|
'callerId': cid,
|
|
|
'callId': uid}
|
|
|
- if ('WebCallId' in app.cache['cel_calls'][msg.linkedid]):
|
|
|
- _cb['WebCallId'] = app.cache['cel_calls'][msg.linkedid]['WebCallId']
|
|
|
- reply = await doCallback('groupAnswered', _cb)
|
|
|
+ if ('WebCallId' in app.cache['cel_calls'][msg.linkedid]):
|
|
|
+ _cb['WebCallId'] = app.cache['cel_calls'][msg.linkedid]['WebCallId']
|
|
|
+ reply = await doCallback('groupAnswered', _cb)
|
|
|
if ((msg.Application == 'Queue') and
|
|
|
(firstMessage.Context == 'from-pstn')):
|
|
|
if (msg.EventName == 'APP_START'):
|