{"id":20302577,"url":"https://github.com/asterisk/libss7","last_synced_at":"2025-04-11T13:43:16.007Z","repository":{"id":140673739,"uuid":"54048229","full_name":"asterisk/libss7","owner":"asterisk","description":null,"archived":false,"fork":false,"pushed_at":"2021-08-27T15:32:08.000Z","size":321,"stargazers_count":18,"open_issues_count":3,"forks_count":11,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-03-25T09:53:02.796Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/asterisk.png","metadata":{"files":{"readme":"README","changelog":"NEWS-05-30-2008","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-03-16T16:25:45.000Z","updated_at":"2025-02-27T16:07:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"4823d97f-5062-4335-aef1-7d238cad16ae","html_url":"https://github.com/asterisk/libss7","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asterisk%2Flibss7","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asterisk%2Flibss7/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asterisk%2Flibss7/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asterisk%2Flibss7/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asterisk","download_url":"https://codeload.github.com/asterisk/libss7/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248410852,"owners_count":21098782,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T16:32:35.417Z","updated_at":"2025-04-11T13:43:15.999Z","avatar_url":"https://github.com/asterisk.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"libss7:\n=======\nlibss7 is a userspace library that is used for providing SS7 protocol\nservices to applications.  It has a working MTP2, MTP3, and ISUP for\nITU and ANSI style SS7, however it was written in a manner that will easily\nallow support for other various national specific variants\nin the future.  For a working reference implementation, see the various\nlink test programs, as well as the Asterisk Open Source PBX.\n\nLicense:\n========\nlibss7 is covered under the GNU GPL (General Public License) version 2.  For more\ninformation, see http://www.gnu.org/licenses/old-licenses/gpl-2.0.html\n\nA few tested switches:\n======================\nSiemens EWSD - (ITU style) MTP2 and MTP3 comes up, ISUP inbound and outbound calls work as well.\nDTI DXC 4K - (ANSI style) 56kbps link, MTP2 and MTP3 come up, ISUP inbound and outbound calls work as well.\nHuawei M800 - (ITU style) MTP2 and MTP3 comes up, ISUP National, International inbound and outbound calls work as well, CallerID presentation\u0026screening work.\n\nand many more...\n\nSome carriers integrated with:\n==============================\nT-Systems Germany\nEtel\nCOLT\n\nThanks to:\n==========\nMark Spencer, for writing Asterisk and libpri and being such a great friend and boss.\n\nLuciano Ramos, for donating a link in getting the first \"real\" ITU switch working.\n\nCollin Rose and John Lodden, John for introducing me to Collin, and Collin for the first\n\"real\" ANSI link and for holding my hand through the remaining changes that had to be \ndone for ANSI switches.\n\nAlan McMillan for numerous ANSI related updates, changes, testing, and additional parameter support.\n\nTo Use:\n=======\nIn order to use libss7, you must get at least the following versions of DAHDI and Asterisk:\nDAHDI: 2.0.x\nlibss7: 1.0.x\nAsterisk: 1.6.x\n\nYou must then do a `make; make install` in each of the directories that you installed\nin the given order (DAHDI first, libss7 second, and Asterisk last).\n\nNOTE: In order to check out the code, you must have the subversion client installed.  This\nis how to check them out from the public subversion server.\n\nThese are the commands you would type to install them:\n\n`svn co http://svn.digium.com/svn/dahdi/linux/trunk dahdi-trunk`\n`cd dahdi-trunk`\n`make; make install`\n\n`svn co http://svn.digium.com/svn/dahdi/tools/trunk dahdi-tools`\n`cd dahdi-tools`\n`./configure; make; make install`\n\n`svn co http://svn.digium.com/svn/libss7/trunk libss7-trunk`\n`cd libss7-trunk`\n`make; make install`\n\n`svn co http://svn.digium.com/svn/asterisk/branches/1.6.0 asterisk-1.6.0`\n`cd asterisk-1.6.0`\n`./configure; make; make install;`\n\nThis should build DAHDI, libss7, and Asterisk with SS7 support.\n\nIn the past, there was a special asterisk-ss7 branch to use which contained the SS7 code.\nThat code has been merged back into the trunk version of Asterisk, and the old asterisk-ss7\nbranch has been deprecated and removed.  If you are still using the asterisk-ss7 branch, it\nwill not work against the current version of libss7, and you should switch to asterisk-trunk\ninstead.\n\nCONFIGURATION:\nIn /etc/dahdi/system.conf, your signalling channel(s) should be a \"mtp2\" (or \"dchan\" with a\nnon Digium card) and your bearers should be set as \"bchan\".\n\nFor example:\nspan=1,1,0,esf,b8zs\nbchan=1-15,17-31\nmtp2=16\n#dchan=16 for non Digium cards\n\nNOTE: For 56k ANSI links, you must additionally set in /etc/dahdi/system.conf \"56k=[channel number]\"\nwhere 56k is like a flag for the mtp2 or dchan.\n\nFor example:\nspan=1,1,0,esf,b8zs\nbchan=1-23\nmtp2=24\n56k=24\n\nIn the sample config file in Asterisk-1.6, there is a sample SS7 setup which you can\nuse to configured your link.\n\nIn brief, here is a simple ss7 linkset setup:\n\nchan_dahdi.conf\n===========\nsignalling = ss7\nss7type = itu \t\t; or ansi if you are using an ANSI link\n\nlinkset = 1\t\t; Pick a number for your linkset identifier in chan_dahdi.conf\n\npointcode = 28\t\t; The decimal form of your point code.  If you are using an\n\t\t\t; ANSI linkset, you can use the xxx-xxx-xxx notation for\n\t\t\t; specifying your linkset pointcode.\nadjpointcode = 2\t; The point code of the switch adjacent to your linkset\n\ndefaultdpc = 3\t\t; The point code of the switch you want to send your ISUP\n\t\t\t; traffic to.  A lot of the time, this is the same as your\n\t\t\t; adjpointcode.\n\n; Now we configure our Bearer channels (CICs)\n\ncicbeginswith = 1\t; Number to start counting the CICs from.  So if DAHDI/1 to\n\t\t\t; DAHDI/15 are CICs 1-15, you would set this to 1 before you\n\t\t\t; declare channel=1-15\n\nchannel=1-15\t\t; Use DAHDI/1-15 and assign them to CICs 1-15\n\ncicbeginswith = 17\t; Now for DAHDI/17 to DAHDI/31, they are CICs 17-31 so we initialize\n\t\t\t; cicbeginswith to 17 before we declare those channels\n\nchannel = 17-31\t\t; This assigns CICs 17-31 to channels 17-31\n\nsigchan = 16\t\t; This is where you declare which DAHDI channel is your signalling\n\t\t\t; channel.  In our case it is DAHDI/16.  You can add redundant\n\t\t\t; signalling channels by adding additional sigchan= lines.\n\t\t\t\n; If we want an alternate redundant signalling channel add this\n\nsigchan = 48\t\t; This would put two signalling channels in our linkset, one at\n\t\t\t; DAHDI/16 and one at DAHDI/48 which both would be used to send/receive\n\t\t\t; ISUP traffic.\n\n; End of chan_dahdi.conf\n\nThis is how a basic linkset is setup.  For more detailed chan_dahdi.conf SS7 config information\nas well as other options available for that file, see the default chan_dahdi.conf that comes\nwith the samples in asterisk.  If you would like, you can do a `make samples` in your\nasterisk directory and it will install a sample chan_dahdi.conf for you that contains\nmore information about SS7 setup.\n\nAsterisk channel variables which map to SS7 parameters:\n=======================================================\nSS7_CHARGE_NUMBER\nSS7_GENERIC_ADDRESS\nSS7_JIP\nSS7_GENERIC_DIGITS\nSS7_GENERIC_DIGTYPE  (type of generic digits)\nSS7_GENERIC_DIGSCHEME\nSS7_ORIG_CALLED_NUM\n\nSS7_LSPI_IDENT (these three are used for RLT support on DMS switches)\nSS7_CALLREF_IDENT\nSS7_CALLREF_PC\n\nSS7_CALLING_PARTY_CATEGORY\nSS7_REDIRECTING_NUMBER\nSS7_GENERIC_NAME\n\nMost are fairly self explanatory as far as what they contain.  It is also possible to set \nmany of these parameters on outbound calls as well by prefixing the variable with an '_' \nwhen you set it.\n\n\nCompleted:\n==========\nMTP2 - Retransmissions are done correctly now from both sides.\nBasic MTP3\nBasic call messages (IAM, ACM, ANM, REL, RLC)\nCIC Reset (GRS, GRA, RSC)\nConnect message (CON)\nCIC Blocking/Unblocking (CGB, CGBA, CGU, CGUA, BLO, BLA)\nContinuity Check (COT, CCR)\nCall Progress message (CPG)\nANSI MTP2, MTP3, and ISUP, inbound and outbound calling works now.\nITU style SS7 support\nANSI-style signalling support\nCalled and Calling Nature of Address Indicator\nCallerID presentation\u0026screening\nUCIC and LPA messages\nANI2 - Originating line interface parameter (ANSI)\nCharge number parameter (ANSI)\nHop counter parameter\nCarrier identification parameter - (very simple, not configurable)\nSS7 debug looks *MUCH* nicer\nKernel level MTP2 support (woohoo!) - See NEWS-05-30-2008 for more info\n* Many more messages are supported than are listed.  isup.c is the best place to look.\n\n\nTODO:\n=====\nshort term:\nSUS/RES\nRDNIS\nTimer for last SU received so we know if layer2 goes out under us\n\nlong term:\nSCTP support (seems more people are interested in that than SCCP)\n\nFor more information, please use the Asterisk-ss7 or Asterisk-dev mailing\nlists (I monitor them regularly) or email me directly.\n\nMatthew Fredrickson\ncreslin@digium.com\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasterisk%2Flibss7","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasterisk%2Flibss7","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasterisk%2Flibss7/lists"}