from PySIP.sip_account import SipAccount from PySIP.sip_call import SipCall import os import asyncio from dotenv import load_dotenv import logging # Load SIP credentials from .env file load_dotenv() try: if len(os.environ["SIP_CONN_TYPE"]) < 1: os.environ["SIP_CONN_TYPE"] = "AUTO" except: os.environ["SIP_CONN_TYPE"] = "AUTO" account = SipAccount( os.environ["SIP_USERNAME"], os.environ["SIP_PASSWORD"], os.environ["SIP_SERVER"], connection_type = os.environ["SIP_CONN_TYPE"] ) async def main(): logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) await account.register() @account.on_incoming_call async def handle_incoming_call(call: SipCall): print("incoming call!") await call.accept() # or call.reject() or call.busy() await call.call_handler.say("Thank you for calling us!") await call.call_handler.hangup() loop = 0 while True: await asyncio.sleep(60) loop = loop + 1 logger.log(logging.INFO, f"Hey, we've been running for {loop} minutes...just so you know.") if __name__ == "__main__": asyncio.run(main())