harv_ser.sh 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922
  1. #!/bin/sh
  2. #
  3. # $Id$
  4. #
  5. # tool for post-processesing captured SIP messages
  6. #
  7. # call it without parameters to harvest the youngest
  8. # log file or with "all" parameter to harvest all
  9. #
  10. # you need to capture SIP messages first; you
  11. # may for example run an init.d job such as
  12. # ngrep -t port 5060 2>&1 | rotatelogs /var/log/sip 86400&
  13. # caution: if you do that you best set up a crond daemon
  14. # which deletes the files too -- they become huge
  15. # very quickly
  16. #
  17. # note that the tool has no notion of messages and transactions
  18. # yet; a consuquence of the former is that number of clients
  19. # which do not identify themselves using User-Agent HF is
  20. # unknown (only lines which include it are processed);
  21. # a consequence is also that relayed messages are
  22. # counted twice (incoming, outgoing), and INVITEs are not
  23. # correlated with BYEs
  24. #
  25. LOGDIR=/var/log/sip
  26. #####################
  27. if [ "$1" = "all" ] ; then
  28. CURRENT=`ls -t $LOGDIR/sip.*`
  29. else
  30. CURRENT=`ls -t $LOGDIR/sip.* | head -1`
  31. fi
  32. echo "Log: `ls -l $CURRENT`"
  33. echo "Date: `date`"
  34. #cat $CURRENT | ./ser_harvest.awk
  35. AWK_PG='
  36. BEGIN {
  37. IGNORECASE=1;
  38. rpl100=0; rpl180=0; rpl183=0; rpl1xx=0;
  39. rpl200=0; rpl202=0; rpl2xx=0;
  40. rpl300=0; rpl302=0; rpl3xx=0;
  41. rpl400=0; rpl401=0; rpl403=0; rpl404=0; rpl405=0;
  42. rpl406=0;rpl407=0;rpl408=0;rpl410=0; rpl415=0;
  43. rpl476=0;rpl477=0;rpl480=0;rpl481=0;rpl482=0;rpl483=0;rpl486=0;rpl478=0;rpl487=0;
  44. rpl488=0;rpl489=0;
  45. rpl4xx=0;
  46. rpl479=0;
  47. rpl500=0;rpl501=0;rpl502=0;rpl503=0;rpl5xx=0;
  48. rpl603=0;rpl6xx=0;
  49. hint_imgw=0;
  50. hint_voicemail=0;
  51. hint_battest=0;
  52. hint_usrloc=0;
  53. hint_outbound=0;
  54. hint_sms=0;
  55. hint_gw=0;
  56. hint_off_voicemail=0;
  57. cancel=0;invite=0;ack=0; info=0;register=0;bye=0;
  58. options=0;
  59. message=0; subscribe=0; notify=0;
  60. ua_snom=0;
  61. ua_msn=0;
  62. ua_mitel=0;
  63. ua_pingtel=0;
  64. ua_ser=0;
  65. ua_osip=0;
  66. ua_linphone=0;
  67. ua_kphone=0;
  68. ua_sjphone=0;
  69. ua_ubiquity=0;
  70. ua_3com=0;
  71. ua_ipdialog=0;
  72. ua_epygi=0;
  73. ua_jasomi=0;
  74. ua_cisco=0;
  75. ua_insipid=0;
  76. ua_hotsip=0;
  77. ua_mxsf=0;
  78. ua_grandstream=0;
  79. ua_tellme=0;
  80. ua_pocketsipm=0;
  81. ua_estara=0;
  82. ua_vovida=0;
  83. ua_jsip=0;
  84. ua_nortel=0;
  85. ua_polycom=0;
  86. ua_csco=0;
  87. ua_leader=0;
  88. ua_nebula=0;
  89. ua_yamaha=0;
  90. ua_magicppc=0;
  91. ua_scs=0;
  92. ua_edgeaccess=0;
  93. ua_tkc=0;
  94. ua_hp300=0;
  95. ua_eyep=0;
  96. ua_sipimp=0;
  97. ua_sjphone=0;
  98. ua_lgelite=0;
  99. ua_asterisk=0;
  100. ua_commworks=0;
  101. ua_sipsak=0;
  102. ua_fxsgw=0;
  103. ua_sxdesign=0;
  104. ua_dlink=0;
  105. ua_gphone=0;
  106. ua_xlite=0;
  107. ua_edial=0;
  108. ua_gs=0;
  109. ua_sipps=0;
  110. ua_i3micro=0;
  111. ua_act=0;
  112. ua_ibm=0;
  113. ua_xpro=0;
  114. ua_hearme=0;
  115. ua_draytek=0;
  116. ua_st280;
  117. ua_dta=0;
  118. ua_fci=0;
  119. ua_xx=0;
  120. server_cisco=0
  121. server_ser=0
  122. server_intertex=0
  123. server_hotsip=0
  124. server_3com=0
  125. server_epygi=0;
  126. server_leader=0;
  127. server_ims=0;
  128. server_csco=0;
  129. server_sapphire=0;
  130. server_lucent=0;
  131. server_snom=0;
  132. server_edgeaccess=0;
  133. server_mcet=0;
  134. server_sjphone=0;
  135. server_starsip=0;
  136. server_ipdialog=0;
  137. server_edial=0;
  138. server_ma=0;
  139. server_fwd=0;
  140. server_columbia=0;
  141. server_partysip=0;
  142. server_xx=0
  143. }
  144. {ua=0; request=0;reply=0;server=0}
  145. ua==0 && /User-Agent:.*RTC\// {
  146. ua_msn++
  147. ua=1
  148. }
  149. ua==0 && /User-Agent:.*Sip EXpress/ {
  150. ua_ser++
  151. ua=1
  152. }
  153. ua==0 && /User-Agent:.*Pingtel/ {
  154. ua_pingtel++
  155. ua=1
  156. }
  157. ua==0 && /User-Agent:.*Cisco/ {
  158. ua_cisco++
  159. ua=1
  160. }
  161. ua==0 && /User-Agent:.*snom/ {
  162. ua_snom++
  163. ua=1
  164. }
  165. ua==0 && /User-Agent:.*tkcPhone/ {
  166. ua_tkc++
  167. ua=1
  168. }
  169. ua==0 && /User-Agent:.*Mitel/ {
  170. ua_mitel++
  171. ua=1
  172. }
  173. ua==0 && /User-Agent:.*oSIP-ua/ {
  174. ua_osip++
  175. ua=1
  176. }
  177. ua==0 && /User-Agent:.*oSIP\/Linphone/ {
  178. ua_linphone++
  179. ua=1
  180. }
  181. ua==0 && /User-Agent:.*3Com/ {
  182. ua_3com++
  183. ua=1
  184. }
  185. ua==0 && /User-Agent:.*ipDialog/ {
  186. ua_ipdialog++
  187. ua=1
  188. }
  189. ua==0 && /User-Agent:.*UbiquityUserAgent/ {
  190. ua_ubiquity++
  191. ua=1
  192. }
  193. ua==0 && /User-Agent:.*EPYGI/ {
  194. ua_epygi++
  195. ua=1
  196. }
  197. ua==0 && /User-Agent:.*Jasomi/ {
  198. ua_jasomi++
  199. ua=1
  200. }
  201. ua==0 && /User-Agent:.*Insipid/ {
  202. ua_insipid++
  203. ua=1
  204. }
  205. ua==0 && /User-Agent:.*mxsf/ {
  206. ua_mxsf++
  207. ua=1
  208. }
  209. ua==0 && /User-Agent:.*Hotsip/ {
  210. ua_hotsip++
  211. ua=1
  212. }
  213. ua==0 && /User-Agent:.*GrandStream/ {
  214. ua_grandstream++
  215. ua=1
  216. }
  217. ua==0 && /User-Agent:.*Tellme/ {
  218. ua_tellme++
  219. ua=1
  220. }
  221. ua==0 && /User-Agent:.*PocketSipM/ {
  222. ua_pocketsipm++
  223. ua=1
  224. }
  225. ua==0 && /User-Agent:.*eStara/ {
  226. ua_estara++
  227. ua=1
  228. }
  229. ua==0 && /User-Agent:.*vovida/ {
  230. ua_vovida++
  231. ua=1
  232. }
  233. ua==0 && /User-Agent:.*jSIP/ {
  234. ua_jsip++
  235. ua=1
  236. }
  237. ua==0 && /User-Agent:.*Nortel/ {
  238. ua_nortel++
  239. ua=1
  240. }
  241. ua==0 && /User-Agent:.*Polycom/ {
  242. ua_polycom++
  243. ua=1
  244. }
  245. ua==0 && /User-Agent:.*CSCO/ {
  246. ua_csco++
  247. ua=1
  248. }
  249. ua==0 && /User-Agent:.*LeaderSIP/ {
  250. ua_leader++
  251. ua=1
  252. }
  253. ua==0 && /User-Agent:.*Nebula/ {
  254. ua_nebula++
  255. ua=1
  256. }
  257. ua==0 && /User-Agent:.*YAMAHA/ {
  258. ua_yamaha++
  259. ua=1
  260. }
  261. ua==0 && /User-Agent:.*MagicPPC/ {
  262. ua_magicppc++
  263. ua=1
  264. }
  265. ua==0 && /User-Agent:.*SJPhone/ {
  266. ua_sjphone++
  267. ua=1
  268. }
  269. ua==0 && /User-Agent:.*KPhone/ {
  270. ua_kphone++
  271. ua=1
  272. }
  273. ua==0 && /User-Agent:.*SCS/ {
  274. ua_scs++
  275. ua=1
  276. }
  277. ua==0 && /User-Agent:.*HP300/ {
  278. ua_hp300++
  279. ua=1
  280. }
  281. ua==0 && /User-Agent:.*SIP EyeP Phone/ {
  282. ua_eyep++
  283. ua=1
  284. }
  285. ua==0 && /User-Agent:.*EdgEAccEss/ {
  286. ua_edgeaccess++
  287. ua=1
  288. }
  289. ua==0 && /User-Agent:.*SJLabs-SJPhone/ {
  290. ua_sjphone++
  291. ua=1
  292. }
  293. ua==0 && /User-Agent:.*LG-Elite/ {
  294. ua_lgelite++
  295. ua=1
  296. }
  297. ua==0 && /User-Agent:.*Asterisk/ {
  298. ua_asterisk++
  299. ua=1
  300. }
  301. ua==0 && /User-Agent:.*CommWorks/ {
  302. ua_commworks++
  303. ua=1
  304. }
  305. ua==0 && /User-Agent:.*sipsak/ {
  306. ua_sipsak++
  307. ua=1
  308. }
  309. ua==0 && /User-Agent:.*FXS_GW/ {
  310. ua_fxsgw++
  311. ua=1
  312. }
  313. ua==0 && /User-Agent:.*SX Des/ {
  314. ua_sxdesign++
  315. ua=1
  316. }
  317. ua==0 && /User-Agent:.*SIPimp\.org/ {
  318. ua_sipimp++
  319. ua=1
  320. }
  321. ua==0 && /User-Agent:.*D-Link/ {
  322. ua_dlink++
  323. ua=1
  324. }
  325. ua==0 && /User-Agent:.*Gphone/ {
  326. ua_gphone++
  327. ua=1
  328. }
  329. ua==0 && /User-Agent:.*eDial/ {
  330. ua_edial++
  331. ua=1
  332. }
  333. ua==0 && /User-Agent:.*Grandstream/ {
  334. ua_gs++
  335. ua=1
  336. }
  337. ua==0 && /User-Agent:.*Ahead SIPPS/ {
  338. ua_sipps++
  339. ua=1
  340. }
  341. ua==0 && /User-Agent:.*IBM user agent/ {
  342. ua_ibm++
  343. ua=1
  344. }
  345. ua==0 && /User-Agent:.*Vega/ {
  346. ua_vega++
  347. ua=1
  348. }
  349. ua==0 && /User-Agent:.*i3micro/ {
  350. ua_i3micro++
  351. ua=1
  352. }
  353. ua==0 && /User-Agent:.*ACT/ {
  354. ua_act++
  355. ua=1
  356. }
  357. ua==0 && /User-Agent:.*X-Pro/ {
  358. ua_xpro++
  359. ua=1
  360. }
  361. ua==0 && /User-Agent:.*HearMe/ {
  362. ua_hearme++
  363. ua=1
  364. }
  365. ua==0 && /User-Agent:.*DrayTek/ {
  366. ua_draytek++
  367. ua=1
  368. }
  369. ua==0 && /User-Agent:.*X-Lite/ {
  370. ua_xlite++
  371. ua=1
  372. }
  373. ua==0 && /User-Agent:.*DTA/ {
  374. ua_dta++
  375. ua=1
  376. }
  377. ua==0 && /User-Agent:.*FCI/ {
  378. ua_fci++
  379. ua=1
  380. }
  381. ua==0 && /User-Agent:.*ST280/ {
  382. ua_st++
  383. ua=1
  384. }
  385. { comment="hack to deal with old version of ngrep (breaking in columns)"
  386. c="skip lines which words which frequently appeared on broken "
  387. c="columns. should not affect non-broken logs"
  388. }
  389. ua==0 && /(CANCEL|REGISTER|SUBSCRIBE|ACK|BYE|INVITE|REFER|OPTIONS|NOTIFY|sip-cc).*User-Agent:/ {
  390. ua=1
  391. }
  392. ua==0 && /User-Agent:/ {
  393. ua_xx++
  394. print
  395. }
  396. server==0 && /Server:.*Cisco/ {
  397. server_cisco++
  398. server=1
  399. }
  400. server==0 && /Server:.*Sip EXpress/ {
  401. server_ser++
  402. server=1
  403. }
  404. server==0 && /Server:.*Intertex/ {
  405. server_intertex++
  406. server=1
  407. }
  408. server==0 && /Server:.*HotSip/ {
  409. server_hotsip++
  410. server=1
  411. }
  412. server==0 && /Server:.*3Com/ {
  413. server_3com++
  414. server=1
  415. }
  416. server==0 && /Server:.*EPYGI/ {
  417. server_epygi++
  418. server=1
  419. }
  420. server==0 && /Server:.*LeaderSIP_UA/ {
  421. server_leader++
  422. server=1
  423. }
  424. server==0 && /Server:.*IMS/ {
  425. server_ims++
  426. server=1
  427. }
  428. server==0 && /Server:.*CSCO/ {
  429. server_csco++
  430. server=1
  431. }
  432. server==0 && /Server:.*sapphire/ {
  433. server_sapphire++
  434. server=1
  435. }
  436. server==0 && /Server:.*snom/ {
  437. server_snom++
  438. server=1
  439. }
  440. server==0 && /Server:.*Lucent/ {
  441. server_lucent++
  442. server=1
  443. }
  444. server==0 && /Server:.*EdgEAccEss/ {
  445. server_edgeaccess++
  446. server=1
  447. }
  448. server==0 && /Server:.*MCET/ {
  449. server_mcet++
  450. server=1
  451. }
  452. server==0 && /Server:.*SJLabs-SJPhone/ {
  453. server_sjphone++
  454. server=1
  455. }
  456. server==0 && /Server:.*StarSIP/ {
  457. server_starsip++
  458. server=1
  459. }
  460. server==0 && /Server:.*ipDialog/ {
  461. server_ipdialog++
  462. server=1
  463. }
  464. server==0 && /Server:.*eDial/ {
  465. server_edial++
  466. server=1
  467. }
  468. server==0 && /Server:.*MA/ {
  469. server_ma++
  470. server=1
  471. }
  472. server==0 && /Server:.*Free World/ {
  473. server_fwd++
  474. server=1
  475. }
  476. server==0 && /Server:.*SIPUA-Columbia-University/ {
  477. server_columbia++
  478. server=1
  479. }
  480. server==0 && /Server:.*partysip/ {
  481. server_partysip++
  482. server=1
  483. }
  484. server==0 && /Server:/ {
  485. server_xx++
  486. print
  487. }
  488. /P-hint: IMGW/ {
  489. hint_imgw++
  490. }
  491. /P-hint: VOICEMAIL/ {
  492. hint_voicemail++
  493. }
  494. /P-hint: BATTEST/ {
  495. hint_battest++
  496. }
  497. /P-hint: USRLOC/ {
  498. hint_usrloc++
  499. }
  500. /P-hint: OUTBOUND/ {
  501. hint_outbound++
  502. }
  503. /P-hint: SMS/ {
  504. hint_sms++
  505. }
  506. /P-hint: GATEWAY/ {
  507. hint_gw++
  508. }
  509. /P-hint: OFFLINE-VOICEMAIL/ {
  510. hint_off_voicemail++
  511. }
  512. /SIP\/2\.0 [0-9][0-9][0-9]/ {
  513. reply=1
  514. }
  515. /[A-Z]* sip.* SIP\/2\.0/ {
  516. request=1
  517. }
  518. reply==0 && request=0 {
  519. comment="optimization--skip now"
  520. next
  521. }
  522. /SIP\/2\.0 100/ {
  523. rpl100++
  524. next
  525. }
  526. /SIP\/2\.0 180/ {
  527. rpl180++
  528. next
  529. }
  530. /SIP\/2\.0 183/ {
  531. rpl183++
  532. next
  533. }
  534. /SIP\/2\.0 1[0-9][0-9]/ {
  535. print
  536. rpl1xx=0
  537. next
  538. }
  539. /SIP\/2\.0 200/ {
  540. rpl200++
  541. next
  542. }
  543. /SIP\/2\.0 202/ {
  544. rpl202++
  545. next
  546. }
  547. /SIP\/2\.0 2[0-9][0-9]/ {
  548. print
  549. rpl2xx++
  550. next
  551. }
  552. /SIP\/2\.0 300/ {
  553. rpl300++
  554. next
  555. }
  556. /SIP\/2\.0 302/ {
  557. rpl302++
  558. next
  559. }
  560. /SIP\/2\.0 3[0-9][0-9]/ {
  561. print
  562. rpl3xx++
  563. next
  564. }
  565. /SIP\/2\.0 400/ {
  566. rpl400++
  567. next
  568. }
  569. /SIP\/2\.0 401/ {
  570. rpl401++
  571. next
  572. }
  573. /SIP\/2\.0 403/ {
  574. rpl403++
  575. next
  576. }
  577. /SIP\/2\.0 404/ {
  578. rpl404++
  579. next
  580. }
  581. /SIP\/2\.0 405/ {
  582. rpl405++
  583. next
  584. }
  585. /SIP\/2\.0 406/ {
  586. rpl406++
  587. next
  588. }
  589. /SIP\/2\.0 407/ {
  590. rpl407++
  591. next
  592. }
  593. /SIP\/2\.0 408/ {
  594. rpl408++
  595. next
  596. }
  597. /SIP\/2\.0 410/ {
  598. rpl410++
  599. next
  600. }
  601. /SIP\/2\.0 415/ {
  602. rpl415++
  603. next
  604. }
  605. /SIP\/2\.0 478/ {
  606. rpl478++
  607. next
  608. }
  609. /SIP\/2\.0 476/ {
  610. rpl476++
  611. next
  612. }
  613. /SIP\/2\.0 477/ {
  614. rpl477++
  615. next
  616. }
  617. /SIP\/2\.0 480/ {
  618. rpl480++
  619. next
  620. }
  621. /SIP\/2\.0 481/ {
  622. rpl481++
  623. next
  624. }
  625. /SIP\/2\.0 482/ {
  626. rpl482++
  627. next
  628. }
  629. /SIP\/2\.0 483/ {
  630. rpl483++
  631. next
  632. }
  633. /SIP\/2\.0 486/ {
  634. rpl486++
  635. next
  636. }
  637. /SIP\/2\.0 487/ {
  638. rpl487++
  639. next
  640. }
  641. /SIP\/2\.0 488/ {
  642. rpl488++
  643. next
  644. }
  645. /SIP\/2\.0 489/ {
  646. rpl489++
  647. next
  648. }
  649. /SIP\/2\.0 479/ {
  650. rpl479++
  651. next
  652. }
  653. /SIP\/2\.0 4[0-9][0-9]/ {
  654. print
  655. rpl4xx++
  656. next
  657. }
  658. /SIP\/2\.0 500/ {
  659. rpl500++
  660. next
  661. }
  662. /SIP\/2\.0 501/ {
  663. rpl501++
  664. next
  665. }
  666. /SIP\/2\.0 502/ {
  667. rpl502++
  668. next
  669. }
  670. /SIP\/2\.0 503/ {
  671. rpl503++
  672. next
  673. }
  674. /SIP\/2\.0 5[0-9][0-9]/ {
  675. print
  676. rpl5xx++
  677. next
  678. }
  679. /SIP\/2\.0 603/{
  680. rpl603++
  681. next
  682. }
  683. /SIP\/2\.0 6[0=9][0-9]/ {
  684. print
  685. rpl6xx++
  686. next
  687. }
  688. /CANCEL sip/ {
  689. cancel++
  690. next
  691. }
  692. /INVITE sip/ {
  693. invite++
  694. next
  695. }
  696. /ACK sip/ {
  697. ack++
  698. next
  699. }
  700. /BYE sip/ {
  701. bye++
  702. next
  703. }
  704. /OPTIONS sip/ {
  705. options++
  706. next
  707. }
  708. /INFO sip/ {
  709. info++
  710. next
  711. }
  712. /MESSAGE sip/ {
  713. message++
  714. next
  715. }
  716. /SUBSCRIBE sip/ {
  717. subscribe++
  718. next
  719. }
  720. /NOTIFY sip/ {
  721. notify++
  722. next
  723. }
  724. /REGISTER sip/ {
  725. register++
  726. next
  727. }
  728. END {
  729. print "## Reply Codes"
  730. print "100 (trying): " rpl100
  731. print "180 (ringing): " rpl180
  732. print "183: (early media)" rpl183
  733. print "1xx: " rpl1xx
  734. print "200 (ok): " rpl200
  735. print "202 (accepted): " rpl202
  736. print "2xx: " rpl2xx
  737. print "300 (Multiple Choices): " rpl300
  738. print "302 (Moved Temporarily): " rpl302
  739. print "3xx: " rpl3xx
  740. print "400 (Bad Request): " rpl400
  741. print "401 (Unauthorized): " rpl401
  742. print "403 (Forbidden): " rpl403
  743. print "404 (Not Found):" rpl404
  744. print "405 (Method not allowed): " rpl405
  745. print "406 (Not Acceptable): " rpl406
  746. print "407 (Proxy Authentication Required):" rpl407
  747. print "408 (Request Timeout): " rpl408
  748. print "410 (Gone): " rpl410
  749. print "415 (Unsupported Media): " rpl415
  750. print "476 (no recursive registrations): " rpl476
  751. print "477 (next hop error): " rpl477
  752. print "478 (Unresolveable): " rpl478
  753. print "479 (private IP): " rpl479
  754. print "480 (Unavailable): " rpl480
  755. print "481 (Call/Transaction does not exist): " rpl481
  756. print "482 (Loop Detected): " rpl482
  757. print "483 (Too Many Hops): " rpl483
  758. print "486 (Busy Here): " rpl486
  759. print "487 (Request Terminated): " rpl487
  760. print "488 (Not Acceptable): " rpl488
  761. print "489 (Bad Event): " rpl489
  762. print "4xx: " rpl4xx
  763. print "500 (Server Internal Error): " rpl500
  764. print "501 (Not Implemented): " rpl501
  765. print "502 (Bad Gateway): " rpl502
  766. print "503 (Service Unavailabl): " rpl503
  767. print "5xx: " rpl5xx
  768. print "603 (Decline): " rpl603
  769. print "6xx: " rpl6xx
  770. print "## Request Methods"
  771. print "INVITE: " invite
  772. print "CANCEL: " cancel
  773. print "ACK: " ack
  774. print "REGISTER: " register
  775. print "BYE: " bye
  776. print "OPTIONS: " options
  777. print "INFO: " info
  778. print "MESSAGE: " message
  779. print "SUBSCRIBE: " subscribe
  780. print "NOTIFY: " notify
  781. print "## Outbound Routes"
  782. print "To imgw: " hint_imgw
  783. print "To voicemail: " hint_voicemail
  784. print "To bat: " hint_battest
  785. print "To UsrLoc: " hint_usrloc
  786. print "Outbound: " hint_outbound
  787. print "To SMS: " hint_sms
  788. print "To PSTN: " hint_gw
  789. print "To: VM on off-line" hint_off_voicemail
  790. print "## User Agents"
  791. print "Snom: " ua_snom
  792. print "MSN: " ua_msn
  793. print "Mitel: " ua_mitel
  794. print "Pingtel: " ua_pingtel
  795. print "SER: " ua_ser
  796. print "osip: " ua_osip
  797. print "linphone: " ua_linphone
  798. print "ubiquity: " ua_ubiquity
  799. print "3com: " ua_3com
  800. print "IPDialog: " ua_ipdialog
  801. print "Epygi: " ua_epygi
  802. print "Jasomi: " ua_jasomi
  803. print "Cisco: " ua_cisco
  804. print "insipid: " ua_insipid
  805. print "Hotsip: " ua_hotsip
  806. print "mxsf: " ua_mxsf
  807. print "GrandStream: " ua_grandstream
  808. print "Tellme: "ua_tellme
  809. print "PocketSipM: " ua_pocketsipm
  810. print "eStara: " ua_estara
  811. print "Vovida: " ua_vovida
  812. print "jSIP: " ua_jsip
  813. print "Nortel: " ua_nortel
  814. print "Polycom: " ua_polycom
  815. print "Leader: " ua_leader
  816. print "csco: " ua_csco
  817. print "Nebula: " ua_nebula
  818. print "MagicPPC: " ua_magicppc
  819. print "SCS: " ua_scs
  820. print "SJPhone: " ua_sjphone
  821. print "KPhone: " ua_kphone
  822. print "Yamaha: " ua_yamaha
  823. print "tkcPhone: " ua_tkc
  824. print "EdgeAccess: " ua_edgeaccess
  825. print "HP300: " ua_hp300
  826. print "EyeP: " ua_eyep
  827. print "SIPimp: " ua_sipimp
  828. print "SJPhone: " ua_sjphone
  829. print "LG-Elite: " ua_lgelite
  830. print "Asterisk: " ua_asterisk
  831. print "CommWorks: " ua_commworks
  832. print "sipsak: " ua_sipsak
  833. print "FXSGW: " ua_fxsgw
  834. print "SXDesing: " ua_sxdesign
  835. print "D-link: " ua_dlink
  836. print "gphone: " ua_gphone
  837. print "X-lite: " ua_xlite
  838. print "grandstream: " ua_gs
  839. print "vegastream: " ua_vega
  840. print "Ahead SIPPS: " ua_sipps
  841. print "IBM user agent: " ua_ibm
  842. print "i3micro: " ua_i3micro
  843. print "ACT: " ua_act
  844. print "X-pro: " ua_xpro
  845. print "Hearme: " ua_hearme
  846. print "DrayTek: " ua_draytek
  847. print "ST: " ua_st
  848. print "DTA: " ua_dta
  849. print "FCI IPRanger: " ua_fci
  850. print "UFO: " ua_xx
  851. print "## Servers"
  852. print "Cisco: " server_cisco " ser: " server_ser
  853. print "Intertex: " server_intertex " Hotsip: " server_hotsip
  854. print "3com: " server_3com " EPYGI: " server_epygi " Leader: " server_leader
  855. print "IMS (Nortel): " server_ims " CSCO: " server_csco
  856. print "sapphire: " server_sapphire
  857. print "snom: " server_snom
  858. print "lucent: " server_lucent
  859. print "edgeAccess: " server_edgeaccess
  860. print "mcet: " server_mcet
  861. print "sjphone: " server_sjphone
  862. print "StarSIP: " server_starsip
  863. print "ipDialog: " server_ipdialog
  864. print "eDial: " server_edial
  865. print "FWD: " server_fwd
  866. print "MA: " server_ma
  867. print "Columbia: " server_columbia
  868. print "PartySip: " server_partysip
  869. print "UFO: " server_xx
  870. }
  871. '
  872. cat $CURRENT | awk "$AWK_PG"