Merge branch 'master' of ssh://jolly@www.mISDN.org/var/git/lcr
[lcr.git] / joinremote.cpp
index 7fc14d1..ec65f35 100644 (file)
@@ -91,7 +91,7 @@ void JoinRemote::message_epoint(unsigned long epoint_id, int message_type, union
 
 void JoinRemote::message_remote(int message_type, union parameter *param)
 {
-       struct message *message;
+       struct lcr_msg *message;
 
        /* create relation if no relation exists */
        if (!j_epoint_id)
@@ -101,7 +101,7 @@ void JoinRemote::message_remote(int message_type, union parameter *param)
                if (!(epoint = new Endpoint(0, j_serial)))
                        FATAL("No memory for Endpoint instance\n");
                j_epoint_id = epoint->ep_serial;
-               if (!(epoint->ep_app = new DEFAULT_ENDPOINT_APP(epoint)))
+               if (!(epoint->ep_app = new DEFAULT_ENDPOINT_APP(epoint, 1))) // outgoing
                        FATAL("No memory for Endpoint Application instance\n");
        }
 
@@ -113,7 +113,7 @@ void JoinRemote::message_remote(int message_type, union parameter *param)
                return;
        }
        
-       /* cannot just forward, because param is not of container "struct message" */
+       /* cannot just forward, because param is not of container "struct lcr_msg" */
        message = message_create(j_serial, j_epoint_id, JOIN_TO_EPOINT, message_type);
        memcpy(&message->param, param, sizeof(message->param));
        message_put(message);
@@ -125,13 +125,20 @@ void JoinRemote::message_remote(int message_type, union parameter *param)
        }
 }
 
-void message_bchannel_to_join(unsigned long remote_id, unsigned long ref, int type, unsigned long handle)
+void message_bchannel_to_join(unsigned long remote_id, unsigned long ref, int type, unsigned long handle, int tx_gain, int rx_gain, char *pipeline, unsigned char *crypt, int crypt_len, int crypt_type)
 {
        union parameter param;
 
        memset(&param, 0, sizeof(union parameter));
        param.bchannel.type = type;
        param.bchannel.handle = handle;
+       param.bchannel.tx_gain = tx_gain;
+       param.bchannel.rx_gain = rx_gain;
+       if (pipeline)
+               SCPY(param.bchannel.pipeline, pipeline);
+       if (crypt_len)
+               memcpy(param.bchannel.crypt, crypt, crypt_len);
+       param.bchannel.crypt_type = crypt_type;
        if (admin_message_from_join(remote_id, ref, MESSAGE_BCHANNEL, &param)<0)
        {
                PERROR("No socket with remote id %d found, this happens, if the socket is closed before all bchannels are imported.\n", remote_id);