Project

comcetera

0.0
Repository is archived
No commit activity in last 3 years
No release in over 3 years
Wrapper class for Comcetera mobile operator detection based on msisdn.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 1.2.9
 Project Readme

comcetera¶ ↑

A simple wrapper for the NumberPortabilityLookup service of Comcetera. Give them a msisdn and they (usually) give you an operator code. Compile your own list of relevant codes based on wikipedia.

I’m scratching my own itch here, so I’m only adding what I use. Feedback and patches are welcome.

For more info about the service, take a look at: numberportabilitylookup.com/

Example¶ ↑

The usual way you’d do a lookup

Comcetera.username = "meeeeee"
Comcetera.password = "verysecret"
comcetera = Comcetera.detect(31612345678)
comcetera.operator_code # => "20415"
comcetera.msisdn        # => "31612345678"

When the lookup does not work due to a timeout

Comcetera.detect(31612345678) # => nil

This means that the amount of retries specified as Comcetera.retries have all timed out after Comcetera.timeout seconds. You can retry at a later time or do something else. This is great if, as is my use case, the lookup is used as a type of pre-selection for numbers.

The API can return a couple of errors. In this case, there is no operator code, but an error code and the full response as debug info.

comcetera = Comcetera.detect(31612345678)
comcetera.operator_code # => nil
comcetera.error_code    # => "ERR29"
comcetera.error_message # => "Absent subscriber"
comcetera.debug         # => "QUERYOK\n31612345678 ERR29\nENDBATCH"

Operator codes¶ ↑

Check the wikipedia page for Mobile Network Codes (en.wikipedia.org/wiki/Mobile_Network_Code) for a list of codes that you can expect.

Example: Wikipedia mentions T-Mobile in the Netherlands as: MCC 204, MNC 16. Comcetera would return this as code 20416. This logic seems consistent across countries.

Note on Patches/Pull Requests¶ ↑

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don’t break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

Contributors¶ ↑

  • Wes ‘Narnach’ Oldenbeuving

  • Gerard ‘smeevil’ de Brieder

Copyright © 2010 Wes Oldenbeuving. See LICENSE for details.