【问题标题】:Twilio conference moderation and participant nameTwilio 会议主持人和参与者姓名
【发布时间】:2016-05-04 03:53:49
【问题描述】:

我想将第一个加入会议的用户设置为主持人,我正在使用twilio-python doc 来帮助我,但我没有看到任何相关信息。

第一个参与者应该是主持人,以便让另一个参与者静音、踢等,但老实说,我不知道这是否真的需要,所以我对“不需要主持人”持开放态度。

我还想知道与令牌相关的名称是否在参与者中,以便用这个而不是 SID 来检索它。 (在文档中没有看到任何内容

这里是服务器端代码:

@app.route('/call', methods=['GET', 'POST'])
def call():
  resp           = twilio.twiml.Response()
  from_value     = request.values.get('From')
  to             = request.values.get('To')
  conferenceName = request.values.get('conferenceName')

  account_sid     = os.environ.get("ACCOUNT_SID", ACCOUNT_SID)
  auth_token      = os.environ.get("AUTH_TOKEN", AUTH_TOKEN)
  app_sid         = os.environ.get("APP_SID", APP_SID)
  clientTwilio  = TwilioRestClient(account_sid, auth_token)

elif to.startswith("conference:"):
    # allows to user conference call
    # client -> conference
    conferencesList = client.conferences.list(friendly_name=conferenceName)

  #there's no conference with the conferenceName so the first person should be the moderator and join it
    if len(conferencesList) == 0 
      #do somestuff to set a moderator [...]
      resp.dial(callerId=from_value).conference(to[11:])
    else:
      #there's already a conference just join it
      resp.dial(callerId=from_value).conference(to[11:])

对于与我想用来检索参与者的令牌/客户端相关的“名称”:

     //http://foo.herokuapp.com/token?client=someName"
     self.phone = [[TCDevice alloc] initWithCapabilityToken:token delegate:self];
    NSDictionary *params = @{@"To": @"conference:foo"};
    self.connection = [self.phone connect:params delegate:self];
        [self closeNoddersView:nil];
    //the user is connected as participant in the conference, is it possible to retrieve it with the "someName" ? (server side route which take a "someName" in param)

有什么线索吗? :/

【问题讨论】:

  • 任何 twilio 传道者?

标签: python objective-c twilio voip conference


【解决方案1】:

我找到了使用客户端名称的解决方法,不需要版主

会议包含参与者列表

参与者与特定呼叫相关

一个调用包含to和from_中的信息:client:name

@app.route('/conference_kick', methods=['GET', 'POST'])
    def conference():
      client          = TwilioRestClient(account_sid, auth_token)
      conferenceName  = request.values.get('conferenceName')
      participantName = request.values.get('participantName') 
      index           = 0
      call            = ""
      # A list of conference objects
      conferencesList = client.conferences.list(status="in-progress",friendly_name=conferenceName)
      if len(conferencesList) == 1:
        if conferencesList[0].participants:
          participants = conferencesList[0].participants.list()
          while index < len(participants): 
            call       = client.calls.get(participants[index].call_sid)
            array = call.from_.split(':')
            if participantName == array[1]:
              participants[index].kick()
              return json.dumps({'code' : 200, 'success':1, 'message':participantName+' kicked'})
            index      += 1  
          return json.dumps({'code' : 101, 'success':0, 'message':participantName+' not found'})  
        else:
          return json.dumps({'code' : 102, 'success':0, 'message':'no participants'})
      else:  
        return json.dumps({'code' : 103, 'success':0, 'message':'no conference'})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-26
    • 1970-01-01
    • 2020-12-23
    相关资源
    最近更新 更多