svetlana 3 жил өмнө
parent
commit
054e5f75d7
1 өөрчлөгдсөн 10 нэмэгдсэн , 7 устгасан
  1. 10 7
      app/app.py

+ 10 - 7
app/app.py

@@ -236,18 +236,21 @@ async def celCallback(mngr: Manager, msg: Message):
       if msg.Context in ('from-queue'):
         if ((msg.EventName == 'CHAN_START') or
             ((msg.EventName == 'CHAN_END') and ('answered' not in firstMessage))):
+          old_count = count(app.cache['cel_calls'][lid]['current_channels'])
+          channel = msg.Channel.axplode(';')[0]
           if msg.EventName == 'CHAN_START':                          #start dial
-            app.cache['cel_calls'][lid]['current_channels'][msg.Exten] = msg.Channel
-            app.cache['cel_calls'][lid]['all_channels'][msg.Exten] = msg.Channel
+            app.cache['cel_calls'][lid]['current_channels'][channel] = msg.Exten
+            app.cache['cel_calls'][lid]['all_channels'][channel] = msg.Exten
           else:                                                      #end dial
-            app.cache['cel_calls'][uid]['current_channels'].pop(msg.CallerIDname, False)
-          _cb = {'users': list(app.cache['cel_calls'][uid]['current_channels'].keys()),
+            app.cache['cel_calls'][uid]['current_channels'].pop(channel, False)
+          if old_count != count(app.cache['cel_calls'][lid]['current_channels']):
+            _cb = {'users': list(app.cache['cel_calls'][uid]['current_channels'].values()),
                  'state': 'group_ringing',
                  '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('groupRinging', _cb)
+            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
           (msg.Application == 'AppDial') and
           firstMessage.get('groupCall',False) and