def register_clients(ud):
	# For each record in UserData list create a registrar UA
	for (InternalUserId, ExtDisplayName, ExtName, ExtLogin, ExtPassword, ExtDomain, ExtPort) in ud.Data:
		Ua = UA(
				global_config,
				event_cb = recvEvent,
				username = ExtLogin,
				password = ExtPassword,
				conn_cbs = (recvConnect,),
				disc_cbs = (recvDisconnect,),
				fail_cbs = (recvDisconnect,),
				dead_cbs = (recvDead,),
				nh_address = (global_config['proxy_address'], global_config['proxy_port'])
			)

		if ExtPort == None:
			Ua.rTarget = SipURL(url = "sip:" + ExtName + "@" + ExtDomain)
			Ua.rUri = SipTo(body = "<sip:" + ExtName + "@" + ExtDomain + ">")
			Ua.lUri = SipFrom(body = ExtDisplayName + " <sip:" + ExtName + "@" + ExtDomain + ">")
		else:
			Ua.rTarget = SipURL(url = "sip:" + ExtName + "@" + ExtDomain + ":" + ExtPort)
			Ua.rUri = SipTo(body = "<sip:" + ExtName + "@" + ExtDomain + ":" + ExtPort + ">")
			Ua.lUri = SipFrom(body = ExtDisplayName + " <sip:" + ExtName + "@" + ExtDomain + ":" + ExtPort + ">")
		Ua.lUri.parse()
		Ua.lUri.genTag()
		Ua.lContact = SipContact(body = "<sip:" + InternalUserId + "@" + global_config['proxy_address'] + ">")
		Ua.routes = ()
		Ua.lCSeq = 1
		Ua.rCSeq = 1
		Ua.cId = SipCallId()
		req = Ua.genRequest("REGISTER")
		Ua.changeState((UacStateTrying,))
		global_config['_sip_tm'].regConsumer(Ua, str(Ua.cId))
		Ua.tr = global_config['_sip_tm'].newTransaction(req, Ua.recvResponse)
def register_clients(ud):
    # For each record in UserData list create a registrar UA
    for (InternalUserId, ExtDisplayName, ExtName, ExtLogin, ExtPassword,
         ExtDomain, ExtPort) in ud.Data:
        Ua = UA(global_config,
                event_cb=recvEvent,
                username=ExtLogin,
                password=ExtPassword,
                conn_cbs=(recvConnect, ),
                disc_cbs=(recvDisconnect, ),
                fail_cbs=(recvDisconnect, ),
                dead_cbs=(recvDead, ),
                nh_address=(global_config['proxy_address'],
                            global_config['proxy_port']))

        if ExtPort == None:
            Ua.rTarget = SipURL(url="sip:" + ExtName + "@" + ExtDomain)
            Ua.rUri = SipTo(body="<sip:" + ExtName + "@" + ExtDomain + ">")
            Ua.lUri = SipFrom(body=ExtDisplayName + " <sip:" + ExtName + "@" +
                              ExtDomain + ">")
        else:
            Ua.rTarget = SipURL(url="sip:" + ExtName + "@" + ExtDomain + ":" +
                                ExtPort)
            Ua.rUri = SipTo(body="<sip:" + ExtName + "@" + ExtDomain + ":" +
                            ExtPort + ">")
            Ua.lUri = SipFrom(body=ExtDisplayName + " <sip:" + ExtName + "@" +
                              ExtDomain + ":" + ExtPort + ">")
        Ua.lUri.parse()
        Ua.lUri.genTag()
        Ua.lContact = SipContact(body="<sip:" + InternalUserId + "@" +
                                 global_config['proxy_address'] + ">")
        Ua.routes = ()
        Ua.lCSeq = 1
        Ua.rCSeq = 1
        Ua.cId = SipCallId()
        req = Ua.genRequest("REGISTER")
        Ua.changeState((UacStateTrying, ))
        global_config['_sip_tm'].regConsumer(Ua, str(Ua.cId))
        Ua.tr = global_config['_sip_tm'].newTransaction(req, Ua.recvResponse)