@@ -42,7 +42,7 @@ static void cancel_handler(void *arg)
42
42
* @param msg Incoming SIP message
43
43
* @param scode Response status code
44
44
* @param reason Response reason phrase
45
- * @param cuser Contact username
45
+ * @param cuser Contact username or URI
46
46
* @param ctype Session content-type
47
47
* @param desc Content description (e.g. SDP)
48
48
* @param authh SIP Authentication handler
@@ -103,24 +103,28 @@ int sipsess_accept(struct sipsess **sessp, struct sipsess_sock *sock,
103
103
if (scode >= 200 )
104
104
err = sipsess_reply_2xx (sess , msg , scode , reason , desc ,
105
105
fmt , & ap );
106
- else
106
+ else {
107
+ struct sip_contact contact ;
108
+
109
+ sip_contact_set (& contact , sess -> cuser , & msg -> dst , msg -> tp );
110
+
107
111
err = sip_treplyf (& sess -> st , NULL , sess -> sip ,
108
112
msg , true, scode , reason ,
109
- "Contact: <sip:%s@%J%s>\r\n "
113
+ "%H "
110
114
"%v"
111
115
"%s%s%s"
112
116
"Content-Length: %zu\r\n"
113
117
"\r\n"
114
118
"%b" ,
115
- sess -> cuser , & msg -> dst ,
116
- sip_transp_param (msg -> tp ),
119
+ sip_contact_print , & contact ,
117
120
fmt , & ap ,
118
121
desc ? "Content-Type: " : "" ,
119
122
desc ? sess -> ctype : "" ,
120
123
desc ? "\r\n" : "" ,
121
124
desc ? mbuf_get_left (desc ) : (size_t )0 ,
122
125
desc ? mbuf_buf (desc ) : NULL ,
123
126
desc ? mbuf_get_left (desc ) : (size_t )0 );
127
+ }
124
128
125
129
va_end (ap );
126
130
@@ -151,6 +155,7 @@ int sipsess_accept(struct sipsess **sessp, struct sipsess_sock *sock,
151
155
int sipsess_progress (struct sipsess * sess , uint16_t scode , const char * reason ,
152
156
struct mbuf * desc , const char * fmt , ...)
153
157
{
158
+ struct sip_contact contact ;
154
159
va_list ap ;
155
160
int err ;
156
161
@@ -159,16 +164,17 @@ int sipsess_progress(struct sipsess *sess, uint16_t scode, const char *reason,
159
164
160
165
va_start (ap , fmt );
161
166
167
+ sip_contact_set (& contact , sess -> cuser , & sess -> msg -> dst , sess -> msg -> tp );
168
+
162
169
err = sip_treplyf (& sess -> st , NULL , sess -> sip , sess -> msg , true,
163
170
scode , reason ,
164
- "Contact: <sip:%s@%J%s>\r\n "
171
+ "%H "
165
172
"%v"
166
173
"%s%s%s"
167
174
"Content-Length: %zu\r\n"
168
175
"\r\n"
169
176
"%b" ,
170
- sess -> cuser , & sess -> msg -> dst ,
171
- sip_transp_param (sess -> msg -> tp ),
177
+ sip_contact_print , & contact ,
172
178
fmt , & ap ,
173
179
desc ? "Content-Type: " : "" ,
174
180
desc ? sess -> ctype : "" ,
0 commit comments