blob: 063e5437e23c90401eed7a1f6766eaa2496da66f [file] [log] [blame]
Tristan Matthews0a329cc2013-07-17 13:20:14 -04001/* $Id$ */
2/*
3 * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
4 * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20#ifndef __PJMEDIA_ERRNO_H__
21#define __PJMEDIA_ERRNO_H__
22
23/**
24 * @file errno.h Error Codes
25 * @brief PJMEDIA specific error codes.
26 */
27
28#include <pjmedia/types.h>
29#include <pj/errno.h>
30
31/**
32 * @defgroup PJMEDIA_ERRNO Error Codes
33 * @ingroup PJMEDIA_BASE
34 * @brief PJMEDIA specific error codes.
35 * @{
36 */
37
38
39PJ_BEGIN_DECL
40
41
42/**
43 * Start of error code relative to PJ_ERRNO_START_USER.
44 */
45#define PJMEDIA_ERRNO_START (PJ_ERRNO_START_USER + PJ_ERRNO_SPACE_SIZE)
46#define PJMEDIA_ERRNO_END (PJMEDIA_ERRNO_START + PJ_ERRNO_SPACE_SIZE - 1)
47
48
49/**
50 * Mapping from PortAudio error codes to pjmedia error space.
51 */
52#define PJMEDIA_PORTAUDIO_ERRNO_START (PJMEDIA_ERRNO_END-10000)
53#define PJMEDIA_PORTAUDIO_ERRNO_END (PJMEDIA_PORTAUDIO_ERRNO_START + 10000 -1)
54/**
55 * Convert PortAudio error code to PJMEDIA error code.
56 * PortAudio error code range: 0 >= err >= -10000
57 */
58#define PJMEDIA_ERRNO_FROM_PORTAUDIO(err) ((int)PJMEDIA_PORTAUDIO_ERRNO_START-err)
59
60
61#if defined(PJMEDIA_HAS_SRTP) && (PJMEDIA_HAS_SRTP != 0)
62
63 /**
64 * Mapping from LibSRTP error codes to pjmedia error space.
65 */
66#define PJMEDIA_LIBSRTP_ERRNO_START (PJMEDIA_ERRNO_END-10200)
67#define PJMEDIA_LIBSRTP_ERRNO_END (PJMEDIA_LIBSRTP_ERRNO_START + 200 - 1)
68/**
69 * Convert LibSRTP error code to PJMEDIA error code.
70 * LibSRTP error code range: 0 <= err < 200
71 */
72#define PJMEDIA_ERRNO_FROM_LIBSRTP(err) (PJMEDIA_LIBSRTP_ERRNO_START+err)
73
74#endif
75
76/************************************************************
77 * GENERIC/GENERAL PJMEDIA ERRORS
78 ***********************************************************/
79/**
80 * @hideinitializer
81 * General/unknown PJMEDIA error.
82 */
83#define PJMEDIA_ERROR (PJMEDIA_ERRNO_START+1) /* 220001 */
84
85
86/************************************************************
87 * SDP ERRORS
88 ***********************************************************/
89/**
90 * @hideinitializer
91 * Generic invalid SDP descriptor.
92 */
93#define PJMEDIA_SDP_EINSDP (PJMEDIA_ERRNO_START+20) /* 220020 */
94/**
95 * @hideinitializer
96 * Invalid SDP version.
97 */
98#define PJMEDIA_SDP_EINVER (PJMEDIA_ERRNO_START+21) /* 220021 */
99/**
100 * @hideinitializer
101 * Invalid SDP origin (o=) line.
102 */
103#define PJMEDIA_SDP_EINORIGIN (PJMEDIA_ERRNO_START+22) /* 220022 */
104/**
105 * @hideinitializer
106 * Invalid SDP time (t=) line.
107 */
108#define PJMEDIA_SDP_EINTIME (PJMEDIA_ERRNO_START+23) /* 220023 */
109/**
110 * @hideinitializer
111 * Empty SDP subject/name (s=) line.
112 */
113#define PJMEDIA_SDP_EINNAME (PJMEDIA_ERRNO_START+24) /* 220024 */
114/**
115 * @hideinitializer
116 * Invalid SDP connection info (c=) line.
117 */
118#define PJMEDIA_SDP_EINCONN (PJMEDIA_ERRNO_START+25) /* 220025 */
119/**
120 * @hideinitializer
121 * Missing SDP connection info line.
122 */
123#define PJMEDIA_SDP_EMISSINGCONN (PJMEDIA_ERRNO_START+26) /* 220026 */
124/**
125 * @hideinitializer
126 * Invalid attribute (a=) line.
127 */
128#define PJMEDIA_SDP_EINATTR (PJMEDIA_ERRNO_START+27) /* 220027 */
129/**
130 * @hideinitializer
131 * Invalid rtpmap attribute.
132 */
133#define PJMEDIA_SDP_EINRTPMAP (PJMEDIA_ERRNO_START+28) /* 220028 */
134/**
135 * @hideinitializer
136 * rtpmap attribute is too long.
137 */
138#define PJMEDIA_SDP_ERTPMAPTOOLONG (PJMEDIA_ERRNO_START+29) /* 220029 */
139/**
140 * @hideinitializer
141 * rtpmap is missing for dynamic payload type.
142 */
143#define PJMEDIA_SDP_EMISSINGRTPMAP (PJMEDIA_ERRNO_START+30) /* 220030 */
144/**
145 * @hideinitializer
146 * Invalid SDP media (m=) line.
147 */
148#define PJMEDIA_SDP_EINMEDIA (PJMEDIA_ERRNO_START+31) /* 220031 */
149/**
150 * @hideinitializer
151 * No payload format in the media stream.
152 */
153#define PJMEDIA_SDP_ENOFMT (PJMEDIA_ERRNO_START+32) /* 220032 */
154/**
155 * @hideinitializer
156 * Invalid payload type in media.
157 */
158#define PJMEDIA_SDP_EINPT (PJMEDIA_ERRNO_START+33) /* 220033 */
159/**
160 * @hideinitializer
161 * Invalid SDP "fmtp" attribute.
162 */
163#define PJMEDIA_SDP_EINFMTP (PJMEDIA_ERRNO_START+34) /* 220034 */
164/**
165 * @hideinitializer
166 * Invalid SDP "rtcp" attribute.
167 */
168#define PJMEDIA_SDP_EINRTCP (PJMEDIA_ERRNO_START+35) /* 220035 */
169/**
170 * @hideinitializer
171 * Invalid SDP media transport protocol.
172 */
173#define PJMEDIA_SDP_EINPROTO (PJMEDIA_ERRNO_START+36) /* 220036 */
174/**
175 * @hideinitializer
176 * Invalid SDP bandwidth info (b=) line.
177 */
178#define PJMEDIA_SDP_EINBANDW (PJMEDIA_ERRNO_START+37) /* 220037 */
179
180
181/************************************************************
182 * SDP NEGOTIATOR ERRORS
183 ***********************************************************/
184/**
185 * @hideinitializer
186 * Invalid state to perform the specified operation.
187 */
188#define PJMEDIA_SDPNEG_EINSTATE (PJMEDIA_ERRNO_START+40) /* 220040 */
189/**
190 * @hideinitializer
191 * No initial local SDP.
192 */
193#define PJMEDIA_SDPNEG_ENOINITIAL (PJMEDIA_ERRNO_START+41) /* 220041 */
194/**
195 * @hideinitializer
196 * No currently active SDP.
197 */
198#define PJMEDIA_SDPNEG_ENOACTIVE (PJMEDIA_ERRNO_START+42) /* 220042 */
199/**
200 * @hideinitializer
201 * No current offer or answer.
202 */
203#define PJMEDIA_SDPNEG_ENONEG (PJMEDIA_ERRNO_START+43) /* 220043 */
204/**
205 * @hideinitializer
206 * Media count mismatch in offer and answer.
207 */
208#define PJMEDIA_SDPNEG_EMISMEDIA (PJMEDIA_ERRNO_START+44) /* 220044 */
209/**
210 * @hideinitializer
211 * Media type is different in the remote answer.
212 */
213#define PJMEDIA_SDPNEG_EINVANSMEDIA (PJMEDIA_ERRNO_START+45) /* 220045 */
214/**
215 * @hideinitializer
216 * Transport type is different in the remote answer.
217 */
218#define PJMEDIA_SDPNEG_EINVANSTP (PJMEDIA_ERRNO_START+46) /* 220046 */
219/**
220 * @hideinitializer
221 * No common media payload is provided in the answer.
222 */
223#define PJMEDIA_SDPNEG_EANSNOMEDIA (PJMEDIA_ERRNO_START+47) /* 220047 */
224/**
225 * @hideinitializer
226 * No media is active after negotiation.
227 */
228#define PJMEDIA_SDPNEG_ENOMEDIA (PJMEDIA_ERRNO_START+48) /* 220048 */
229/**
230 * @hideinitializer
231 * No suitable codec for remote offer.
232 */
233#define PJMEDIA_SDPNEG_NOANSCODEC (PJMEDIA_ERRNO_START+49) /* 220049 */
234/**
235 * @hideinitializer
236 * No suitable telephone-event for remote offer.
237 */
238#define PJMEDIA_SDPNEG_NOANSTELEVENT (PJMEDIA_ERRNO_START+50) /* 220050 */
239/**
240 * @hideinitializer
241 * No suitable answer for unknown remote offer.
242 */
243#define PJMEDIA_SDPNEG_NOANSUNKNOWN (PJMEDIA_ERRNO_START+51) /* 220051 */
244
245
246/************************************************************
247 * SDP COMPARISON STATUS
248 ***********************************************************/
249/**
250 * @hideinitializer
251 * SDP media stream not equal.
252 */
253#define PJMEDIA_SDP_EMEDIANOTEQUAL (PJMEDIA_ERRNO_START+60) /* 220060 */
254/**
255 * @hideinitializer
256 * Port number in SDP media descriptor not equal.
257 */
258#define PJMEDIA_SDP_EPORTNOTEQUAL (PJMEDIA_ERRNO_START+61) /* 220061 */
259/**
260 * @hideinitializer
261 * Transport in SDP media descriptor not equal.
262 */
263#define PJMEDIA_SDP_ETPORTNOTEQUAL (PJMEDIA_ERRNO_START+62) /* 220062 */
264/**
265 * @hideinitializer
266 * Media format in SDP media descriptor not equal.
267 */
268#define PJMEDIA_SDP_EFORMATNOTEQUAL (PJMEDIA_ERRNO_START+63) /* 220063 */
269/**
270 * @hideinitializer
271 * SDP connection description not equal.
272 */
273#define PJMEDIA_SDP_ECONNNOTEQUAL (PJMEDIA_ERRNO_START+64) /* 220064 */
274/**
275 * @hideinitializer
276 * SDP attributes not equal.
277 */
278#define PJMEDIA_SDP_EATTRNOTEQUAL (PJMEDIA_ERRNO_START+65) /* 220065 */
279/**
280 * @hideinitializer
281 * SDP media direction not equal.
282 */
283#define PJMEDIA_SDP_EDIRNOTEQUAL (PJMEDIA_ERRNO_START+66) /* 220066 */
284/**
285 * @hideinitializer
286 * SDP fmtp attribute not equal.
287 */
288#define PJMEDIA_SDP_EFMTPNOTEQUAL (PJMEDIA_ERRNO_START+67) /* 220067 */
289/**
290 * @hideinitializer
291 * SDP ftpmap attribute not equal.
292 */
293#define PJMEDIA_SDP_ERTPMAPNOTEQUAL (PJMEDIA_ERRNO_START+68) /* 220068 */
294/**
295 * @hideinitializer
296 * SDP session descriptor not equal.
297 */
298#define PJMEDIA_SDP_ESESSNOTEQUAL (PJMEDIA_ERRNO_START+69) /* 220069 */
299/**
300 * @hideinitializer
301 * SDP origin not equal.
302 */
303#define PJMEDIA_SDP_EORIGINNOTEQUAL (PJMEDIA_ERRNO_START+70) /* 220070 */
304/**
305 * @hideinitializer
306 * SDP name/subject not equal.
307 */
308#define PJMEDIA_SDP_ENAMENOTEQUAL (PJMEDIA_ERRNO_START+71) /* 220071 */
309/**
310 * @hideinitializer
311 * SDP time not equal.
312 */
313#define PJMEDIA_SDP_ETIMENOTEQUAL (PJMEDIA_ERRNO_START+72) /* 220072 */
314
315
316/************************************************************
317 * CODEC
318 ***********************************************************/
319/**
320 * @hideinitializer
321 * Unsupported codec.
322 */
323#define PJMEDIA_CODEC_EUNSUP (PJMEDIA_ERRNO_START+80) /* 220080 */
324/**
325 * @hideinitializer
326 * Codec internal creation error.
327 */
328#define PJMEDIA_CODEC_EFAILED (PJMEDIA_ERRNO_START+81) /* 220081 */
329/**
330 * @hideinitializer
331 * Codec frame is too short.
332 */
333#define PJMEDIA_CODEC_EFRMTOOSHORT (PJMEDIA_ERRNO_START+82) /* 220082 */
334/**
335 * @hideinitializer
336 * PCM buffer is too short.
337 */
338#define PJMEDIA_CODEC_EPCMTOOSHORT (PJMEDIA_ERRNO_START+83) /* 220083 */
339/**
340 * @hideinitializer
341 * Invalid codec frame length.
342 */
343#define PJMEDIA_CODEC_EFRMINLEN (PJMEDIA_ERRNO_START+84) /* 220084 */
344/**
345 * @hideinitializer
346 * Invalid PCM frame length.
347 */
348#define PJMEDIA_CODEC_EPCMFRMINLEN (PJMEDIA_ERRNO_START+85) /* 220085 */
349/**
350 * @hideinitializer
351 * Invalid mode.
352 */
353#define PJMEDIA_CODEC_EINMODE (PJMEDIA_ERRNO_START+86) /* 220086 */
354/**
355 * @hideinitializer
356 * Bad or corrupted bitstream.
357 */
358#define PJMEDIA_CODEC_EBADBITSTREAM (PJMEDIA_ERRNO_START+87) /* 220087 */
359
360
361/************************************************************
362 * MEDIA
363 ***********************************************************/
364/**
365 * @hideinitializer
366 * Invalid remote IP address (in SDP).
367 */
368#define PJMEDIA_EINVALIDIP (PJMEDIA_ERRNO_START+100) /* 220100 */
369/**
370 * @hideinitializer
371 * Asymetric codec is not supported.
372 */
373#define PJMEDIA_EASYMCODEC (PJMEDIA_ERRNO_START+101) /* 220101 */
374/**
375 * @hideinitializer
376 * Invalid payload type.
377 */
378#define PJMEDIA_EINVALIDPT (PJMEDIA_ERRNO_START+102) /* 220102 */
379/**
380 * @hideinitializer
381 * Missing rtpmap.
382 */
383#define PJMEDIA_EMISSINGRTPMAP (PJMEDIA_ERRNO_START+103) /* 220103 */
384/**
385 * @hideinitializer
386 * Invalid media type.
387 */
388#define PJMEDIA_EINVALIMEDIATYPE (PJMEDIA_ERRNO_START+104) /* 220104 */
389/**
390 * @hideinitializer
391 * Remote does not support DTMF.
392 */
393#define PJMEDIA_EREMOTENODTMF (PJMEDIA_ERRNO_START+105) /* 220105 */
394/**
395 * @hideinitializer
396 * Invalid DTMF digit.
397 */
398#define PJMEDIA_RTP_EINDTMF (PJMEDIA_ERRNO_START+106) /* 220106 */
399/**
400 * @hideinitializer
401 * Remote does not support RFC 2833
402 */
403#define PJMEDIA_RTP_EREMNORFC2833 (PJMEDIA_ERRNO_START+107) /* 220107 */
404/**
405 * @hideinitializer
406 * Invalid or bad format
407 */
408#define PJMEDIA_EBADFMT (PJMEDIA_ERRNO_START+108) /* 220108 */
409
410
411/************************************************************
412 * RTP SESSION ERRORS
413 ***********************************************************/
414/**
415 * @hideinitializer
416 * General invalid RTP packet error.
417 */
418#define PJMEDIA_RTP_EINPKT (PJMEDIA_ERRNO_START+120) /* 220120 */
419/**
420 * @hideinitializer
421 * Invalid RTP packet packing.
422 */
423#define PJMEDIA_RTP_EINPACK (PJMEDIA_ERRNO_START+121) /* 220121 */
424/**
425 * @hideinitializer
426 * Invalid RTP packet version.
427 */
428#define PJMEDIA_RTP_EINVER (PJMEDIA_ERRNO_START+122) /* 220122 */
429/**
430 * @hideinitializer
431 * RTP SSRC id mismatch.
432 */
433#define PJMEDIA_RTP_EINSSRC (PJMEDIA_ERRNO_START+123) /* 220123 */
434/**
435 * @hideinitializer
436 * RTP payload type mismatch.
437 */
438#define PJMEDIA_RTP_EINPT (PJMEDIA_ERRNO_START+124) /* 220124 */
439/**
440 * @hideinitializer
441 * Invalid RTP packet length.
442 */
443#define PJMEDIA_RTP_EINLEN (PJMEDIA_ERRNO_START+125) /* 220125 */
444/**
445 * @hideinitializer
446 * RTP session restarted.
447 */
448#define PJMEDIA_RTP_ESESSRESTART (PJMEDIA_ERRNO_START+130) /* 220130 */
449/**
450 * @hideinitializer
451 * RTP session in probation
452 */
453#define PJMEDIA_RTP_ESESSPROBATION (PJMEDIA_ERRNO_START+131) /* 220131 */
454/**
455 * @hideinitializer
456 * Bad RTP sequence number
457 */
458#define PJMEDIA_RTP_EBADSEQ (PJMEDIA_ERRNO_START+132) /* 220132 */
459/**
460 * @hideinitializer
461 * RTP media port destination is not configured
462 */
463#define PJMEDIA_RTP_EBADDEST (PJMEDIA_ERRNO_START+133) /* 220133 */
464/**
465 * @hideinitializer
466 * RTP is not configured.
467 */
468#define PJMEDIA_RTP_ENOCONFIG (PJMEDIA_ERRNO_START+134) /* 220134 */
469
470
471/************************************************************
472 * PORT ERRORS
473 ***********************************************************/
474/**
475 * @hideinitializer
476 * Generic incompatible port error.
477 */
478#define PJMEDIA_ENOTCOMPATIBLE (PJMEDIA_ERRNO_START+160) /* 220160 */
479/**
480 * @hideinitializer
481 * Incompatible clock rate
482 */
483#define PJMEDIA_ENCCLOCKRATE (PJMEDIA_ERRNO_START+161) /* 220161 */
484/**
485 * @hideinitializer
486 * Incompatible samples per frame
487 */
488#define PJMEDIA_ENCSAMPLESPFRAME (PJMEDIA_ERRNO_START+162) /* 220162 */
489/**
490 * @hideinitializer
491 * Incompatible media type
492 */
493#define PJMEDIA_ENCTYPE (PJMEDIA_ERRNO_START+163) /* 220163 */
494/**
495 * @hideinitializer
496 * Incompatible bits per sample
497 */
498#define PJMEDIA_ENCBITS (PJMEDIA_ERRNO_START+164) /* 220164 */
499/**
500 * @hideinitializer
501 * Incompatible bytes per frame
502 */
503#define PJMEDIA_ENCBYTES (PJMEDIA_ERRNO_START+165) /* 220165 */
504/**
505 * @hideinitializer
506 * Incompatible number of channels
507 */
508#define PJMEDIA_ENCCHANNEL (PJMEDIA_ERRNO_START+166) /* 220166 */
509
510
511/************************************************************
512 * FILE ERRORS
513 ***********************************************************/
514/**
515 * @hideinitializer
516 * Not a valid WAVE file.
517 */
518#define PJMEDIA_ENOTVALIDWAVE (PJMEDIA_ERRNO_START+180) /* 220180 */
519/**
520 * @hideinitializer
521 * Unsupported WAVE file.
522 */
523#define PJMEDIA_EWAVEUNSUPP (PJMEDIA_ERRNO_START+181) /* 220181 */
524/**
525 * @hideinitializer
526 * Wave file too short.
527 */
528#define PJMEDIA_EWAVETOOSHORT (PJMEDIA_ERRNO_START+182) /* 220182 */
529/**
530 * @hideinitializer
531 * Sound frame is too large for file buffer.
532 */
533#define PJMEDIA_EFRMFILETOOBIG (PJMEDIA_ERRNO_START+183) /* 220183 */
534/**
535 * @hideinitializer
536 * Unsupported AVI file.
537 */
538#define PJMEDIA_EAVIUNSUPP (PJMEDIA_ERRNO_START+191) /* 220191 */
539
540
541/************************************************************
542 * SOUND DEVICE ERRORS
543 ***********************************************************/
544/**
545 * @hideinitializer
546 * No suitable audio capture device.
547 */
548#define PJMEDIA_ENOSNDREC (PJMEDIA_ERRNO_START+200) /* 220200 */
549/**
550 * @hideinitializer
551 * No suitable audio playback device.
552 */
553#define PJMEDIA_ENOSNDPLAY (PJMEDIA_ERRNO_START+201) /* 220201 */
554/**
555 * @hideinitializer
556 * Invalid sound device ID.
557 */
558#define PJMEDIA_ESNDINDEVID (PJMEDIA_ERRNO_START+202) /* 220202 */
559/**
560 * @hideinitializer
561 * Invalid sample format for sound device.
562 */
563#define PJMEDIA_ESNDINSAMPLEFMT (PJMEDIA_ERRNO_START+203) /* 220203 */
564
565
566#if defined(PJMEDIA_HAS_SRTP) && (PJMEDIA_HAS_SRTP != 0)
567/************************************************************
568 * SRTP TRANSPORT ERRORS
569 ***********************************************************/
570/**
571 * @hideinitializer
572 * SRTP crypto-suite name not match the offerer tag.
573 */
574#define PJMEDIA_SRTP_ECRYPTONOTMATCH (PJMEDIA_ERRNO_START+220) /* 220220 */
575/**
576 * @hideinitializer
577 * Invalid SRTP key length for specific crypto.
578 */
579#define PJMEDIA_SRTP_EINKEYLEN (PJMEDIA_ERRNO_START+221) /* 220221 */
580/**
581 * @hideinitializer
582 * Unsupported SRTP crypto-suite.
583 */
584#define PJMEDIA_SRTP_ENOTSUPCRYPTO (PJMEDIA_ERRNO_START+222) /* 220222 */
585/**
586 * @hideinitializer
587 * SRTP SDP contains ambigue answer.
588 */
589#define PJMEDIA_SRTP_ESDPAMBIGUEANS (PJMEDIA_ERRNO_START+223) /* 220223 */
590/**
591 * @hideinitializer
592 * Duplicated crypto tag.
593 */
594#define PJMEDIA_SRTP_ESDPDUPCRYPTOTAG (PJMEDIA_ERRNO_START+224) /* 220224 */
595/**
596 * @hideinitializer
597 * Invalid crypto attribute.
598 */
599#define PJMEDIA_SRTP_ESDPINCRYPTO (PJMEDIA_ERRNO_START+225) /* 220225 */
600/**
601 * @hideinitializer
602 * Invalid crypto tag.
603 */
604#define PJMEDIA_SRTP_ESDPINCRYPTOTAG (PJMEDIA_ERRNO_START+226) /* 220226 */
605/**
606 * @hideinitializer
607 * Invalid SDP media transport for SRTP.
608 */
609#define PJMEDIA_SRTP_ESDPINTRANSPORT (PJMEDIA_ERRNO_START+227) /* 220227 */
610/**
611 * @hideinitializer
612 * SRTP crypto attribute required in SDP.
613 */
614#define PJMEDIA_SRTP_ESDPREQCRYPTO (PJMEDIA_ERRNO_START+228) /* 220228 */
615/**
616 * @hideinitializer
617 * Secure transport required in SDP media descriptor.
618 */
619#define PJMEDIA_SRTP_ESDPREQSECTP (PJMEDIA_ERRNO_START+229) /* 220229 */
620
621#endif /* PJMEDIA_HAS_SRTP */
622
623
624/**
625 * Get error message for the specified error code. Note that this
626 * function is only able to decode PJMEDIA specific error code.
627 * Application should use pj_strerror(), which should be able to
628 * decode all error codes belonging to all subsystems (e.g. pjlib,
629 * pjmedia, pjsip, etc).
630 *
631 * @param status The error code.
632 * @param buffer The buffer where to put the error message.
633 * @param bufsize Size of the buffer.
634 *
635 * @return The error message as NULL terminated string,
636 * wrapped with pj_str_t.
637 */
638PJ_DECL(pj_str_t) pjmedia_strerror( pj_status_t status, char *buffer,
639 pj_size_t bufsize);
640
641
642PJ_END_DECL
643
644/**
645 * @}
646 */
647
648
649#endif /* __PJMEDIA_ERRNO_H__ */
650