fixup
[lcr.git] / interface.c
index 7556a18..b8eff05 100644 (file)
@@ -1033,6 +1033,26 @@ static int options_interval(struct interface *interface, char *filename, int lin
        return(0);
 #endif
 }
+static int options_asserted_id(struct interface *interface, char *filename, int line, char *parameter, char *value)
+{
+#ifndef WITH_SIP
+       SPRINT(interface_error, "Error in %s (line %d): SIP not compiled in.\n", filename, line);
+       return(-1);
+#else
+       if (!interface->sip) {
+               SPRINT(interface_error, "Error in %s (line %d): This is not a SIP interface.\n", filename, line);
+               return(-1);
+       }
+
+       if (!value || !value[0]) {
+               SPRINT(interface_error, "Error in %s (line %d): Missing asserted caller ID.\n", filename, line);
+               return(-1);
+       }
+       SCPY(interface->sip_asserted_id, value);
+
+       return(0);
+#endif
+}
 static int options_public(struct interface *interface, char *filename, int line, char *parameter, char *value)
 {
 #ifndef WITH_SIP
@@ -1142,14 +1162,13 @@ static int inter_register(struct interface *interface, char *filename, int line,
                return(-1);
        }
        q = get_seperated(p);
-       if (!q[0]) {
-               SPRINT(interface_error, "Error in %s (line %d): Missing register interval\n", filename, line);
-               return(-1);
-       }
+       if (!q[0])
+               interface->sip_register_interval = 0;
+       else
+               interface->sip_register_interval = atoi(q);
        interface->sip_register = 1;
        SCPY(interface->sip_register_user, value);
        SCPY(interface->sip_register_host, p);
-       interface->sip_register_interval = atoi(q);
 
        return(0);
 #endif
@@ -1532,12 +1551,15 @@ struct interface_param interface_param[] = {
        {"sip", &inter_sip, "<local IP/host>[:port] [<remote IP/host>[port]]",
        "Sets up SIP interface that represents one SIP endpoint.\n"
        "If the remote IP/host is omitted, a client must register first to us."},
-       {"register", &inter_register, "<user> <host>",
-       "Registers to given SIP registrar."},
+       {"register", &inter_register, "<user> <host> [options-interval]",
+       "Registers to given SIP registrar.\n"
+       "Optionally give SIP timer to send OPTIONS messages to keepalive REGISTER sessions."},
        {"authenticate", &inter_authenticate, "<user> <password>",
        "Defines SIP user and password for authentication."},
        {"options-interval", &options_interval, "<interval> | 0",
-       "Defines SIP timer to send OPTIONS messages to keepalive SIP sessions."},
+       "Defines SIP timer to send OPTIONS messages to keepalive INVITE sessions."},
+       {"asserted-id", &options_asserted_id, "<caller-id>",
+       "Defines SIP's asserted-id in INVITE message."},
        {"public", &options_public, "<server> <interval>",
        "Defines public IP, if this endpoint is behind NAT firewall."},
        {"stun", &options_stun, "<server> <interval>",